命名空间

命名空间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() ,才能够调用到数据

相关文章
相关标签/搜索