ホームページ  >  記事  >  バックエンド開発  >  PHP オートロードメカニズム (遅延ロード)

PHP オートロードメカニズム (遅延ロード)

WBOY
WBOYオリジナル
2016-06-23 14:30:381377ブラウズ

Wikipedia: 遅延ロードは、必要な時点までオブジェクトの初期化を延期するためにコンピューター プログラミングで一般的に使用される設計パターンであり、適切かつ適切に使用すると、プログラムの動作の効率化に貢献します。読み込みは熱心な読み込みです

PHP で開発する場合、開発者は使用と管理を容易にするためにクラスを別のファイルに保存することがよくあります。

しかし、PHP5 より前では、クラスを使用するたびに、最初にファイルを include または require する必要があり、使用するクラスが多数ある場合は、大量の include または require ステートメントを記述する必要があり、面倒でした。メンテナンスが不便。幸いなことに、PHP5 には自動ロードという遅延読み込みメカニズムが備わっています。

PHP5 より前でクラス A を使用したい場合:

require ('A.php');$a = A();

PHP5 では、未定義のクラスを使用しようとすると、__autoload 関数が自動的に呼び出されます。PHP にクラスを自動的にロードさせるように __autoload 関数を作成できます。含まれるファイルの長いリストを作成する必要はありません。

すごいです

もちろん、クラスをロードする __autoload のルールをカスタマイズできます。

さらに、自動ロード時に __autoload を呼び出すのではなく、独自の関数 (またはクラス メソッド) を呼び出したい場合は、spl_autoload_register を使用して独自の autoload 関数を登録できます。

function __autoload($class)  {      $file = $class . '.php';      if (is_file($file)) {          require_once($file);      }  }  $a = new A();

クラスメソッド:

function loader($class)  {      $file = $class . '.php';      if (is_file($file)) {           require_once($file);      }  }  spl_autoload_register('loader');  $a = new A();

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。