码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-08-02 16:03:16      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:写法   方法   app   mod   不同的   mode   定义函数   dmi   package   

看PHP中的命名空间和use

namespace app\admin\model;
use think\Model;
use think\Db;

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

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

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

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

只需要通过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的用法实践总结

标签:写法   方法   app   mod   不同的   mode   定义函数   dmi   package   

原文地址:https://www.cnblogs.com/keta/p/9407339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!