ホームページ >バックエンド開発 >PHPチュートリアル >PHP __autoload と spl_autoload
したがって、spl の autoload シリーズ関数が表示されるように、autoload 呼び出しスタックを緊急に使用する必要があります。 spl_autoload_register を使用して、複数のカスタム自動ロード関数を登録できます。
PHP バージョンが 5.1 以降の場合は、spl_autoload を使用できます。まず、spl のいくつかの関数を理解します。
spl_autoload は _autoload() のデフォルト実装であり、include_path で $class_name(.php/.inc) を探します
実際にはプロジェクトの通常のメソッドは次のとおりです (クラスが見つからない場合にのみ呼び出されます):
// Example to auto-load class files from multiple directories using the SPL_AUTOLOAD_REGISTER method. // It auto-loads any file it finds starting with class.<classname>.php (LOWERCASE), eg: class.from.php, class.db.php spl_autoload_register(function($class_name) { // Define an array of directories in the order of their priority to iterate through. $dirs = array( 'project/', // Project specific classes (+Core Overrides) 'classes/', // Core classes example 'tests/', // Unit test classes, if using PHP-Unit ); // Looping through each directory to load all the class files. It will only require a file once. // If it finds the same class in a directory later on, IT WILL IGNORE IT! Because of that require once! foreach( $dirs as $dir ) { if (file_exists($dir.'class.'.strtolower($class_name).'.php')) { require_once($dir.'class.'.strtolower($class_name).'.php'); return; } } });
上記では、PHP __autoload と spl_autoload を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。