2010-11-28 63 views
2

显然,自动加载具有绝对名称空间名称(\ One \ Two \ Three)的类转换为实际目录路径(One/Two/Three.php)很简单。自动加载名称空间名称(绝对和相对)与目录结构相对应的类

不过,我很好奇,如果有任何的方式来谁被实例化(在PHP过程中的第一次)自动加载类使用一个命名空间的名称相对到当前的命名空间(从\一个装载二\三, 例如)。

为“__autoload”执行的全球命名空间,并只接受一个参数(类名称,包括命名空间的组件),我看不出它如何能知道到哪里寻找类。

但是,我假设一些PHP向导已经找到了解决方案,因为总是通过它们的绝对名称空间名来指定类会非常不方便。

在此先感谢您的帮助!

回答

1

你总是在你的自动加载完整的命名空间:

<?php 
namespace { 
    function __autoload($class) 
    { 
     var_dump($class);die(); 
    } 
} 

namespace One { 
    new Two\Three(); 
} 
?> 

输出:

string(13) "One\Two\Three" 
+0

哈哈,谢谢你回答这个很老的问题。我也发现了这一点,但找不到删除问题的方法。谢谢! – 2011-04-02 04:11:39

相关问题