命名空间php
◆彻底限定名称(Fully-qualified name)函数
任何PHP代码均可以引用彻底限定名称,它是一个以命名空间反斜线开头的标识符,如\App\Lib1\MYCONST,\App\Lib2\MyFunction( )等。ui
彻底限定名称是没有任何歧义的,开头的反斜线和文件路径的做用有点相似,它表示“根”全局空间,若是咱们在全局空间中实现了一个不一样的MyFunction( ),能够使用\MyFunction( )从lib1.php或lib2.php调用它。spa
彻底限定名称对一次性函数调用或对象初始化很是有用,但当你产生了大量的调用时它们就没有实用价值了,在下面的讨论中咱们将会看到,PHP提供了其它选项以解除咱们为命名空间打字的烦恼。code
◆限定名称(Qualified name)对象
至少有一个命名空间分隔符的标识符,如Lib1\MyFunction( )。blog
◆非限定名称(Unqualified name)字符串
没有命名空间分隔符的标识符,如MyFunction( )。io
__NAMESPACE__是一个PHP字符串,它老是返回当前命名空间的名称,在全局空间中它是一个空字符串function
namespace关键字能够用于明确引用一个当前命名空间或子命名空间中的项目,它等价于类中的self命名空间
小例子命名空间
入口文件 name.php
<?php function __autoload($name) { $name = str_replace("\\", '/', $name.".class.php"); require_once(dirname(__FILE__).'/'.$name); } use test\user as mc; $m = new mc(); var_dump($m); $m-> user2();
./test/user.class.php文件
<?php namespace test; class user { function user() { echo 'new'; } function user2() { echo '@@@@'; } }
结果
]
构造函数要用__construct() ,才能够调用到数据