是否只需要类的全局名称空间前缀?

时间:2014-04-10 07:29:29

标签: php namespaces

我正在试图弄清楚命名空间如何在PHP中工作,但很难理解何时需要全局命名空间前缀。请看以下示例:

的index.php

namespace MySpace;

require_once 'file.php';

Test::hello();

hi();

file.php

class Test {
    public static function hello () {
        echo 'hello';
    }
}

function hi() {
    echo 'hi';
}

这不会起作用,但是编写\ Test :: hello()会反过来回应“hello”和“hi”。

为什么不是hi()所需的\?

1 个答案:

答案 0 :(得分:1)

  

http://php.net/manual/en/language.namespaces.fallback.php

     

使用名称空间:回退到全局函数/常量

     

在命名空间内,当PHP在类中遇到非限定名称时   名称,函数或常量上下文,它用不同的方式解析它们   优先级。 类名始终解析为当前名称空间名称。   因此,要访问内部或非命名空间的用户类,必须引用   给他们的是完全合格的姓名[...]

     

对于函数和常量,PHP将回退到全局函数或   常量如果名称空间函数或常量不存在。