学斋随笔,初九潜龙勿用,-56tp命名空间

  在我们去开发大型的项目的时候,可能会需要非常多的文件,面向对象通过命名空间来解决我们的僵局,在命名空间中可以有类,函数与常量,只有const定义的常量命名空间才有效。命名空间的名字必须符合PHP命名的规则。  

  命名空间是逻辑上的定义,逻辑的名称 不是物理上的路径,Tp中为了寻址的方便把命名空间做成地址。

  命名空间是一种封装事物的方法。 

  PHP 命名空间可以解决以下两类问题:

 

    用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

    为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

  命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。其格式如下:

    <?php

     // 定义代码在 'MyProject' 命名空间中 namespace MyProject;

    // ... 代码 ...

  关于命名空间的使用:

    PHP 命名空间中的类名可以通过三种方式引用:

      1非限定名称,或不包含前缀的类名称,例如 $a=new foo(); 或 foo::staticmethod();。

      2限定名称,或包含前缀的名称,例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。

      3完全限定名称,或包含了全局前缀操作符的名称,例如, $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。

  命名空间的注意事项:

 

    1最顶层的\表示的是公共空间

 

    2namespace必须在最上面。

 

    3命名是虚拟的空间,不是真实存在的目录,但是ThinkPHP的命名空间是真实的地址路径。

 

    4当前文件中include具有命名空间的文件,不会改变当前文件的命名空间。

 

    5use有两个作用 引入命名空间  引入类

 

  

 

posted @ 2019-03-22 14:21  玩转手绘  阅读(135)  评论(0)    收藏  举报