我有以下自动装带器:
spl_autoload_register(function($class) {
$class = ltrim($class, '\\');
$filename = '';
$namespace = '';
if ($last_ns_pos = strripos($class, '\\')) {
$namespace = strtolower(substr($class, 0, $last_ns_pos));
$class = substr($class, $last_ns_pos + 1);
$filename = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$filename .= str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php';
require $filename;
});
如果我想加载MyApp\Library\ClassOne
,则可以正常运行,因为该类位于中/MyApp/Library/ClassOne.php
。这实现了名称空间的一种功能; 不过,我希望能够自动加载的常量和函数的文件(像MyApp\Constants
和MyApp\Functions
位于MyApp\Constants.php
和MyApp\Functions.php
,分别)。
当前的PHP(从PHP 5.5开始)不支持自动加载类以外的任何东西。
当前正在讨论自动加载函数和常量的功能,该功能可能会添加到下一个版本(即PHP 5.6)中,但有关此功能的决定尚未最终确定。
有关更多详细信息,请参见https://wiki.php.net/rfc/autofunc。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句