关键字namespace 与常量__NAMESPACE__之间的区别与联系

Original 2019-04-11 17:42:24 136
abstract:关键字 namespace 可用来显式访问当前命名空间或子命名空间中的元素。它等价于类中的 self 操作符。常量__NAMESPACE__的值是包含当前命名空间名称的字符串。在全局的,不包括在任何命名空间中的代码,它包含一个空的字符串。常量 __NAMESPACE__ 在动态创建名称时很有用。<?php namespace newspace {    

关键字 namespace 可用来显式访问当前命名空间或子命名空间中的元素。它等价于类中的 self 操作符。

常量__NAMESPACE__的值是包含当前命名空间名称的字符串。在全局的,不包括在任何命名空间中的代码,它包含一个空的字符串。常量 __NAMESPACE__ 在动态创建名称时很有用。

<?php
namespace newspace
{
    const REGION = 'CHINA';
    class NewClass
    {
        public static function newInfo()
        {
            echo '我在新闻newspace的命名空间的newClass类下的newInfo方法中';
        }       
    }

    function newFun()
    {
        echo '我在新闻newspace的命名空间的newfun函数里';
    }
}
// myspace 命名空间
namespace myspace
{
    const NAME = '老王';
    class MyClass
    {
        public static function myInfo()
        {
            echo var_dump(__NAMESPACE__) . '——————————————__NAMESPACE__的值为:'. __NAMESPACE__ .'<hr>';
            return '我在个人中心myspace的命名空间的myclass类下的myInfo方法中';
        }       
    }

    function myFun()
    {
        echo '我在个人中心myspace的命名空间的myfun函数里';
    }
}
// 以下为全局空间
namespace
{
    echo myspace\NAME;
    echo '<br>';
    echo myspace\MyClass::myInfo();
    echo '<hr>';
    echo namespace\newspace\newFun();

}
?>

20190411174110.jpg

Correcting teacher:天蓬老师Correction time:2019-04-12 09:17:25
Teacher's summary:命名空间, 类似其它语言中的包管理工具, 可以将之前在全局中的成员, 放在指定空间中进行隔离

Release Notes

Popular Entries