ホームページ >バックエンド開発 >PHPチュートリアル >PHP でのクラス自動読み込みインスタンス分析
PHP の別のファイルで PHP コードを使用する必要がある場合は、include、include_once、require、require_once を使用してクラス ファイルを導入できます。 require と include の違いは構文の厳密さの違いです。インポートされたファイルでエラーが発生すると、include 構文を使用してエラーが報告されますが、後続のステートメントは引き続き実行されます。 require はエラーが発生した後に実行を停止します。
include と include_once の違いは、 include を使用すると、ファイルが存在する場合に 1 回インポートされるのに対し、 include_once は同じファイルがインポートされるときに 1 回だけインポートされることです。
一般に、多数のインポートされたファイルが使用される可能性があるため、多数の include/require ステートメントを記述する必要があります。このような状況では、自動読み込みを使用すると非常に不便です。
1. __autoload() マジック関数を使用します:
プログラムが「クラスを必要とする」場合、システムはこの関数を自動的に呼び出します。この関数は自分で定義する必要があります:
function __autoload($className){ require "需要引入文件的路径(不包含文件名)".$className.".php"; }
変数 $className が自動的に呼び出しますこの関数は渡されるクラス名です。
2. spl_autoload_register() 関数を使用します。
複数の __autoload() 関数を宣言するために使用します。
spl_autoload_register("関数名 1" );....この関数は実際には __autoload(); と同じです
//此处声明三个自动加载函数名, spl_autoload_register('auto1'); spl_autoload_register('auto2'); spl_autoload_register('auto2'); //接下来需要定义所声明的函数。 function auto1($className){ $file="文件路径".$className.".php"; if(file_exists($file)){ require $file; } } function auto2($className){ $file="文件路径".$className.".php"; if(file_exists($file)){ require $file; } } function auto2($className){ $file="文件路径".$className.".php"; if(file_exists($file)){ require $file; } }
在使用该方法时,需要类时,会按照声明的顺序先从auto1()调用,如果有的话就引入,如果不存在,就到下一个函数调用......
spl_autoload_register() と __autoload() の違いは、 spl_autoload_register() がファイル パスに異なるファイルを導入できることです。また、spl_autoload_register() がファイルに登録されている場合、メソッド __autoload() は自動的に無効になります。
PHP は自動ロード機能を実装します
以上がPHP でのクラス自動読み込みインスタンス分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。