[PHP] __autoload() マジック メソッドと spl_autoload_register
参考リンク:
1. spl_autoload_registerとautoloadの違いの詳しい説明
2. php.net自動読み込みクラス
多くの開発者は、オブジェクト指向アプリケーションを作成するときに、クラス定義ごとに PHP ソース ファイルを作成します。大きな煩わしさは、各スクリプトの先頭にインクルード ファイルの長いリスト (クラスごとに 1 つのファイル) を記述しなければならないことです。
PHP 5 では、これは必要なくなりました。まだ定義されていないクラスを使用しようとしたときに自動的に呼び出される __autoload() 関数を定義できます。この関数を呼び出すことにより、スクリプト エンジンは、PHP がエラーで失敗する前に、必要なクラスをロードする最後のチャンスを得ることができます。
簡単なインポート例:
まず、新しいクラス ファイル MyClass.class.php を作成します。
リーリー同じディレクトリに任意の名前で新しい php ファイルを作成します:
リーリー
このマジックメソッドが定義されている場合
新しいオブジェクトが見つかり、現在のコードでクラス定義が見つからない場合(上記の2つの条件が満たされている場合)、__autoload()関数がクラス名パラメータと関数に渡されます。実行されるコードスニペットです。
したがって、var_dump("MyClass"); と require './MyClass.class.php'; が関数内で実行されます。
結果は以下の通りです:
リーリー
オートロードには欠点があります: 繰り返し定義できないため (PHP 言語の特性)、チーム開発が必要な場合には不便であり、競合が発生しやすくなります。
そのため、PHP 5.1.2 以降には自動ロード登録関数 spl_autoload_register が存在します。この関数の手順は次のとおりです。
関数を SPL __autoload 関数キューに登録します。このキュー内の関数がまだアクティブになっていない場合は、アクティブにします。
複数のオートロード関数が必要な場合は、PHP 5.3 での名前空間の導入後、この関数のパラメーターはさまざまな形式になります:spl_autoload_register() がそのようなニーズを満たします。 実際には自動ロード関数のキューを作成し、定義された順序で 1 つずつ実行します。対照的に、
__autoload() は 1 回しか定義できません。
リーリー
以下は例です (上記の 4 つのフォームをテストしています):
リーリー
リーリー

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







