显然,具有绝对命名空间名称(\ One \ Two \ Three)的自动加载类转换为实际目录路径(One / Two / Three.php)非常简单。
但是,我很好奇是否有任何方法可以自动加载已经实例化(在PHP过程中第一次)使用命名空间名称 relative 到当前命名空间的类(加载两个\三个来自\例如一个。
由于“__autoload”在全局命名空间中执行,并且只接受一个参数(类名,包括命名空间组件),我无法看到它如何知道在哪里查看为了上课。
但是,我假设某个PHP向导找到了解决方案,因为总是按绝对命名空间名称指定类会非常不方便。
提前感谢您的帮助!
答案 0 :(得分:1)
您始终可以在自动加载器中获得完整的命名空间:
<?php
namespace {
function __autoload($class)
{
var_dump($class);die();
}
}
namespace One {
new Two\Three();
}
?>
输出:
string(13) "One\Two\Three"