导入和别名
官方解释:允许通过别名引用或导入外部的完全限定名称,是命名空间的一个重要特征。这有点类似于在类 unix 文件系统中可以创建对其它的文件或目录的符号连接
namespace My\Full;
class Classname{
function __construct(){
echo __NAMESPACE__.'<br />';
}
}
namespace My\Full\NSname\subns;
function func(){
echo __NAMESPACE__;
}
namespace FOO\bar;
const name = 1;
function say(){
echo __NAMESPACE__.'<br />';
}
namespace Foo;
class foo{
public function __construct(){
echo 'huangyanxiong';
}
}
use My\Full\Classname as Another;
use My\Full\NSname as Nsname;
bar\say(); //限定名称 \\解释为Foo\bar\下的bar方法
new Another(); //别名导入 \\解释为My\Full\下Classname类
Nsname\subns\func();//别名导入,解释为My\Full\NSname\subns 下的func方法 这里就好像你用将一个目录的名称缩短后,然后继续写子目录,
new namespace\foo();//这个namespace相当于self,当前命名空间下的foo方法
\ReflectionObject::export($a);
需要注意的问题:
1:PHP 命名空间支持 有两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名。注意PHP不支持导入函数或常量。(官方)
2:如果没有定义任何命名空间,所有的类与函数的定义都是在全局空间,与 PHP 引入命名空间概念前一样。在名称前加上前缀 \表示该名称是全局空间中的名称,即使该名称位于其它的命名空间中时也是如此。