类是php四大全局成员(常量函数类接口)中的一员,全局成员有着不受作用域限制的优势,同时也存在名称唯一的限制。

命名空间的出现就能很好的去解决这个唯一命名的问题。

命名空间可以起到一个命名化块的作用,命名空间的命名可以随意起,但是一般建议跟目录一致,命名空间的命名规则参考变量的命名规则,不能是数字开头,不能是内部函数,且需要写在除declare指令外的第一行(注释不算在内)。

命名空间的两种写法:

namespacens1;

namespacens1{}

其中全局空间写做:

namespace{}

但是这里需要注意,如果用namespacens1;的形式就必须所有命名空间都用namespacens1;的形式,如果用namespacens1{}的形式就必须所有命名空间都用namespacens1{}的形式。

下面将autoload.php自动加载做一个命名空间版本的升级:

实例

<?php//类的自动加载spl_autoload_register(function($className){//echo$className;//可以先echo一下检查下要加载的类//echo'<hr>';//将类的命名空间与类文件所在的路径保持一一映射$file=__DIR__.str_replace('\\',DIRECTORY_SEPARATOR,('\..\..\\'.$className)).'.php';//绝对路径方式获取$file地址//$file=str_replace('\\',DIRECTORY_SEPARATOR,$className).'.php';//相对路径方式获取$file地址//echo$file;//地址错误的情况下,可以检查下地址的内容//判断$file是否是已存在的文件夹if(!is_file($file)&&file_exists($file)){//如果不是则抛出错误thrownew\Exception('文件名不合法或不存在');}//没问题则引入$file的地址require$file;});

运行实例 »

点击 "运行实例" 按钮查看在线实例

以下面的文件做为测试:

  • Demo(文件夹)

    • app(文件夹)

      • admin(文件夹)

        • controller(文件夹)

          • Login.php(php文件)代码:

          • <?phpnamespaceapp\admin\controller;classLogin{}
          • User.php(php文件)

          • <?phpnamespaceapp\admin\controller;//控制器在User控制器文件中使用User模型文件useapp\admin\model\UserasUserModel;classUser{publicfunctionindex(){returnUserModel::getInfo();}}
        • model(文件夹)

          • Login.php(php文件)

          • <?phpnamespaceapp\admin\model;classLogin{}
          • User.php(php文件)

          • <?phpnamespaceapp\admin\model;classUser{staticfunctiongetInfo(){return'获取到用户信息';}}
        • autoload.php(php文件,代码参考上文)

  • demo.php(php文件)

  • <?php//引入类的自动加载器require'app/admin/autoload.php';//通过命名空间引入各个类文件,其中遇到重名的需要用as进行重命名的处理操作useapp\admin\controller\Login;useapp\admin\controller\User;useapp\admin\model\LoginasLoginModel;useapp\admin\model\UserasUserModel;//将所有引入的类进行实例化$loginController=newLogin;$UserController=newUser;$loginModel=newLoginModel;$UserModel=newUserModel;//调用User类中的index()echo$UserController->index();

正常输出:获取到用户信息。

_TSUL(0@NDEBAVE%AW8%H9D.png

msql初体验

sql语句四种分类:

数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL

DQL:基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>,即增删改查中的

DML:用来对数据库进行操作,常用的如:插入:INSERT,更新:UPDATE,删除:DELETE,即增删改查中的增删改

DDL:主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,一般主要在建立表时使用。

DCL:数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。

更多相关文章

  1. 命名空间的相关知识
  2. PHP-02外部文件引入require与数组遍历
  3. mysql语句、类的自动加载与引用
  4. oracle数据库无法打开修复过程
  5. php 命名空间的使用
  6. 命名空间与mysql入门
  7. 关于PHP递归函数以及处理多维数组和目录文件实例
  8. 总结mysql 常用DDL, DML语言并实操与use在命名空间中的作用及实
  9. 完成一个用户注册页面, 用xmind文件中总结的字符串函数库,对表单

随机推荐

  1. mysql-ubuntu卸载安装mysql
  2. MySQL数据目录结构
  3. 如何使用mysql 命令行 查看mysql表大小、
  4. MySQL手动安装步骤
  5. 关于mysql 中的limit 偏移量较大时 的
  6. 如何以varchar字段为编号?
  7. MYSQL中的普通索引,主健,唯一,全文索引区
  8. mysql 题 大家帮我看看哪里错了
  9. 急啊,在线等!!mysql 如何实现增量备份
  10. MySQL数据库多表查询