我正在尝试自动加载我的 PHP 5.3 命名空间类,例如。
/JM
Auth.php
User.php
Db/Entity.php
/ ...
我做了
namespace KM;
class Autoloader {
public static function registerAutolaod() {
ini_set('include_path', dirname(__FILE__) . PATH_SEPARATOR . ini_get('include_path'));
spl_autoload_register(function ($classname) {
$file = preg_replace('/\\\/', DIRECTORY_SEPARATOR, $classname) . '.php';
echo $file . '<br />';
include ($file);
});
}
}
问题是有时我得到的类名是
User
有时 KM\User
我怎样才能解决这个问题?
最佳答案
$classname
您在回调函数中收到的信息将被假定为本地的。那是因为您已经在命名空间中定义了 __autoloader。
要始终获得绝对/完全限定的命名空间和类名,请在全局范围内声明您的自动加载器。 http://www.php.net/manual/en/language.oop5.autoload.php#87985
关于php - 如何自动加载 PHP 5.3 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6326421/