命名空间 导入和别名,全局命名空间(三)

导入和别名

官方解释:允许通过别名引用或导入外部的完全限定名称,是命名空间的一个重要特征。这有点类似于在类 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 引入命名空间概念前一样。在名称前加上前缀 \表示该名称是全局空间中的名称,即使该名称位于其它的命名空间中时也是如此。


转载于:https://my.oschina.net/freax/blog/403342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值