我正在试图弄清楚命名空间如何在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()所需的\?
答案 0 :(得分:1)
http://php.net/manual/en/language.namespaces.fallback.php
使用名称空间:回退到全局函数/常量
在命名空间内,当PHP在类中遇到非限定名称时 名称,函数或常量上下文,它用不同的方式解析它们 优先级。 类名始终解析为当前名称空间名称。 因此,要访问内部或非命名空间的用户类,必须引用 给他们的是完全合格的姓名[...]
对于函数和常量,PHP将回退到全局函数或 常量如果名称空间函数或常量不存在。