我刚刚学习了关于PHP的命名空间并开始创建一个简单的自动加载函数。 O做的是:关于一个简单的PHP自动加载器的问题
function __autoload($name) {
echo $name . "<br />";
require_once $name . ".php";
}
所以,如果我不使用任何别名或导入语句,例如。 use MainNamespace\Subnamespace
因为如果我这样做,假设我有:
\GreatApp\Models\User.php
\GreatApp\Models\Project.php
\GreatApp\Util\Util.php
\GreatApp\Util\Test\Test.php
,如果我尝试做:
new GreatApp\Models\User();
它的作品,因为$name
在自动加载将成为GreatApp\Models\User
所以GreatApp\Models\User.php
被发现。但是,当我做的:
use GreatApp\Models;
new User();
它失败,因为现在$name
只是User
和User.php
不会被发现。那么我应该如何设置自动加载?
您应该spl_autoload_register使用,而不是__autoload功能。 – Macmade 2010-07-23 13:46:53