PHP命令空间namespace及use的用法实践总结

Posted keta

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP命令空间namespace及use的用法实践总结相关的知识,希望对你有一定的参考价值。

php中的命名空间和use

namespace appadminmodel;
use thinkModel;
use thinkDb;

综上可以看出,命名空间就是相当于一个文件夹的路径。

同一个命名空间下,不能有相同的类文件。

同名的类文件可以存在于不同的命名空间下面。

用了命名空间,可以方便的调用其他文件夹下的文件。

只需要通过using、import、use引入命名空间下的文件即可。

从5.3开始你可以使用命名空间来组织你的代码了。 不同的命名空间内可以包含相同名字的类、函数以及常量。 声明一个命名空间非常简单,只需要在文件的开始处加上namespace 语句,像下面这样

从5.3开始你可以使用命名空间来组织你的代码了。 不同的命名空间内可以包含相同名字的类、函数以及常量。 声明一个命名空间非常简单,只需要在文件的开始处加上namespace 语句,像下面这样

  1. <?php
  2. /** classes/my/foo/MyClass.php */
  3.  
  4. namespace my::foo;
  5.  
  6. class MyClass {}//定义一个类
  7.  
  8. // 当然,也可以定义函数和常量
  9. function myFunc() { }
  10. const MY_CONST = ‘foo’;
  11.  
  12. ?>

有多种方法来访问

    1. <?php
    2. /** test.php */
    3. include(classes/my/foo/MyClass.php);
    4.  
    5. // 可以随时通过完整的名称来访问一个类
    6. $foo = new my::foo::MyClass();
    7.  
    8. // 还可以使用use语句来导入一个命名空间
    9. use my::foo;
    10. // 然后,通过foo来引用 my::foo这个命名空间
    11. $foo = new foo::MyClass();
    12.  
    13. // 也可以只导入一个类
    14. use my::foo::MyClass;
    15. $foo = new MyClass;
    16.  
    17. // 可以为命名空间或者命名空间中的类创建别名
    18. use my::foo as MyFoo;
    19. use my::foo::MyClass as MyFooClass;
    20. $foo = new MyFoo::MyClass();
    21. $foo = new MyFooClass();
    22.  
    23. // 注意, 下面的两种写法是等价的:
    24.  
    25. use my::foo;
    26. use my::foo as foo;
    27.  
    28. // 也可以用同样的方法来访问函数和常量
    29. my::foo::myFunc();
    30. myFoo::myFunc();
    31. my::foo::MY_CONST;
    32. myFoo::MY_CONST;
    33.  
    34. ?>

use 语句只能导入命名空间和类,下面这种写法就不行: use my::foo::MY_CONST;。一个use语句的有效范围是从它被定义开始直到文件的结尾,你可以在全局范围内任何地方使用它。 你可以在多个文件中使用相同的命名空间。但是一个文件只应该包含一个命名空间 (这一行为可能会在最终版本中被改变,也可能用package来替换namespace关键字 :))。 尽管不能import一个函数或者常量, 但是仍然可以使用一些前缀来从命名空间中访问他们。在PHP 5.3的早期版本中,import 关键字被用来代替 use, 现在这一点已经被改变

 



以上是关于PHP命令空间namespace及use的用法实践总结的主要内容,如果未能解决你的问题,请参考以下文章

php namespace与use

using namespace ;是启用一个命名空间。有没有结束用一个命名空间的办法呢?

关于php的命名空间

.NET C# 10.0中命令空间(namespace)的新写法及提示警告配置

PHP命名空间(Namespace)初探

PHP命名空间与use