ホームページ >バックエンド開発 >PHPチュートリアル >PHPにおけるクラスの自動ロード方法のいくつかの例の詳細な説明
この記事では主にPHPでクラスを自動で読み込む方法を紹介します。クラスの自動ロードは、外部ページにクラス ファイルを「導入」する必要がないことを意味しますが、プログラムは必要に応じて必要なクラス ファイルを動的にロードします。
クラスの自動ロードは、外部ページにクラス ファイルを「導入」する必要がないことを意味しますが、プログラムは必要に応じて必要なクラス ファイルを動的にロードします。 プログラムが特定のクラスを必要とする場合、この関数を自分で定義し、クラス ファイルをロードするための一般的なステートメントを記述する必要があります。それ。 。<?php //需要类是自动调用,而且会传进来一个类名,这个案例的文件名为21A.class.php,类名为A function autoload($className){ require "./21".$className.".class.php"; } $o1 = new A(); $o1->v1 = 10; echo "<br/>v1:".$o1->v1; ?>
方法 2: spl_autoload_register 関数を使用する
この関数の機能は、autoload 関数の置き換えに使用できる複数の関数を作成することです。構文は次のとおりです。 spl_autoload_regist("function. name 1"); spl_autoload_register を使用する場合、オートロードは無効になります。<?php //注册两个用于自动加载的函数名 spl_autoload_register('auto1'); spl_autoload_register('auto2'); function auto1($className){ $file = "./21".$className.".class.php"; if(file_exists($file)){ require "./21".$className.".class.php"; } } function auto1($className){ $file = "./22".$className.".class.php"; if(file_exists($file)){ require "./22".$className.".class.php"; } } //如果需要一个雷,但这个页面还没有记载,就会依次调用auto1和auto2,知道找到该类文件并加载 ?>別の例: ここでの自動ロードは次の形式と互換性があります: Cache_File_Json
class_xxx.php
xxx.class.php
xxx.php
php コードは次のとおりです:
function autoload($className){ $dirs=explode('_',$className); $fileName=array_pop($dirs); //print_r($dirs); $filePath=$fileName; if(is_array($dirs) && (count($dirs) > 0)){ //echo '\n---\n'; print_r($dirs); $dirPath=''; foreach ($dirs as $dir){ if($dir){ $dirPath.=strtolower($dir).DIRECTORY_SEPARATOR; } } $filePath=$dirPath.$fileName.'.php'; }else { if( file_exists('class_'.$fileName.'.php')){ $filePath='class_'.$fileName.'.php'; }else { if( file_exists($fileName.'.class.php')){ $filePath=$fileName.'.class.php'; } else { $filePath=$fileName.'.php'; } } } //var_dump($filePath); require $filePath; }
以上がPHPにおけるクラスの自動ロード方法のいくつかの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。