我剛剛學習了關於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