如何使用命名空間自動加載PHP 類
問題說明:
嘗試利用命名空間使用自動載入可能會導致以下錯誤:
<code class="php">Fatal error: Class 'Class1' not found in /usr/local/www/apache22/data/public/php5.3/test.php on line 10</code>
解決方案:
確保命名空間中定義的類別未在全域範圍中聲明。利用自動載入器根據名稱空間和類別名稱動態載入類別定義。
更新的程式碼:
<code class="php">// Class1.php namespace Person\Barnes\David; class Class1 { public function __construct() { echo __CLASS__; } } // test.php spl_autoload_register(function ($class) { $parts = explode('\', $class); require end($parts) . '.php'; }); use Person\Barnes\David as MyPerson; $class = new MyPerson\Class1();</code>
說明:
在更新的程式碼中,我們利用splister_autoload_plister(來自動載入類別。 autoloader 函數將類別名稱拆分為其命名空間元件,並使用類別定義載入對應的檔案。
注意:
以上是使用具有自動載入功能的 PHP 命名空間時如何解決類別載入錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!