我在我的文件中构建了一个没有命名空间的新对象:
new My\Validator();
上面,在我得到的同一个文件中__autoload():
function __autoload($className)
{
var_dump($className);
}
函数__autoload()
打印
'My\My\Validator'.
双子'My'
从哪里来?
它正在添加My
命名空间,因为My
当您使用new My\Validator()
.
namespace My;
$obj = new My\Validator();
将被翻译成:
$obj = new My\My\Validator();
由于您已经在My
命名空间内,您可以:
new Validator()
new \My\Validator()
开头\
将告诉 PHP 查看全局命名空间。
附带说明一下,使用spl_autoload_register
代替被认为是一种很好的做法__autoload
,因为您可以设置多个自动加载器回调。