名前空間を使用して 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>
説明:
更新されたコードでは、spl_autoload_register() を利用してクラスを自動ロードします。オートローダー関数は、クラス名を名前空間コンポーネントに分割し、対応するファイルをクラス定義とともにロードします。
注:
以上が自動読み込みで PHP 名前空間を使用する場合のクラス読み込みエラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。