命名空间 导入和别名,全局命名空间(三)
命名空间 导入和别名,全局命名空间(三)
huangyanxiong 发表于3年前
命名空间 导入和别名,全局命名空间(三)
  • 发表于 3年前
  • 阅读 23
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

导入和别名

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


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 14
博文 66
码字总数 28662
作品 3
×
huangyanxiong
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: