ホームページ >バックエンド開発 >PHPチュートリアル >注019 spl_autoload_registerによる自動ロード
TSpl_autoload_register
(PHP 5 & GT; = 5.1.2, PHP 7) Spl_Autoload_register — __autoload として登録された関数 Bool SPL_AUTOLOAD_register ([CALLLBBB le $ AutoLOAD_FUNCTION [, bool $prepend = false ]]] )説明
この関数を通じて、ロードされたクラスのアドレッシング モードを指定できるため、大規模なバッチを要求したりインクルードしたりする必要はありません。システムは、指定されたルールに従って自動的に対応する場所に移動し、インスタンス化する必要があるクラスを見つけます。この方法は比較的低レベルですが、フレームワークがあれば、通常はこの作業を行う必要はありません。ただし、このブログを書いているときに自分でスクリプトをいじる必要がある場合などは、どうしても必要になります。現時点では、それを回避する方法はありません。次の例は、スクリプトで使用する単純な自動ロード プログラムです。 例
spl_autoload_register(function ($class) { $rootPath = realpath(sprintf('%s/..', __DIR__)); $paths = array( 'src', ); foreach ($paths as $path) { if (is_file( $file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class . '.php' )) { include $file; break; } } });匿名関数は PHP 5.3 以降でのみ使用できることに注意してください。使用できない場合は、PHP のバージョンを確認してください。ここでは、src フォルダー内で検索するすべてのクラスを指定するだけです。クラス名はファイル名とまったく同じです。 上記は、自動読み込みを実現するための spl_autoload_register による Note 019 の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。