ホームページ > バックエンド開発 > PHPチュートリアル > PHP自動読み込みクラスの__autoload()関数の使い方

PHP自動読み込みクラスの__autoload()関数の使い方

WBOY
リリース: 2016-06-20 13:04:20
オリジナル
1305 人が閲覧しました

PHP でオブジェクト指向アプリケーションを開発する場合、さまざまなクラス ライブラリを呼び出す必要があることがよくあるため、これらのライブラリを使用するときにクラス ライブラリを参照するために require または include を使用することは避けられません。 __autoload() 関数は非常に便利です。

PHP 5 では、まだ定義されていないクラスを使用しようとすると自動的に呼び出される __autoload() 関数を定義できます。この関数を呼び出すことで、スクリプト エンジンは最後のチャンスを得ることができます。 PHP はエラーで失敗します。__autoload() 関数で受け取る 1 つのパラメーターは、ロードするクラスのクラス名です。そのため、プロジェクトで作業するときは、特定のルールに従う必要があります。クラスのファイル名を定義する場合は、名前付きセンターを使用するのが最適ですが、xxx_classname.php、classname_xxx.php、classname.php などの統一されたプレフィックスまたはサフィックスを追加することもできます。

この例では、MyClass1.php ファイルと MyClass2.php ファイルからそれぞれ MyClass1 クラスと MyClass2 クラスをロードしようとします

<span style="font-size: 14px;"><?php</span><br />function __autoload($classname)<br />{<br />require_once $classname . '.php';<br />}<br /><br />//MyClass1类不存在时,自动调用__autoload()函数,传入参数”MyClass1”<br />$obj = new MyClass1();<br /><br />//MyClass2类不存在时,自动调用__autoload()函数,传入参数”MyClass2”<br />$obj2 = new MyClass2();<br /><p>?><span style="font-size: 14px;">
ログイン後にコピー

プログラムでは次の処理メソッドを使用できます:

<span style="font-size: 14px;"><?php</span><br />if (function_exists('spl_autoload_register'))<br />{<br />spl_autoload_register(array('core', 'autoload'));<br />}<br />else<br />{<br />function __autoload($class)<br />{<br />return core::autoload($class);<br />}<br /><p>} </p>
ログイン後にコピー

注: __autoload() は、授業! ! !多くのフレームワークは、この関数を使用してクラス ファイルの自動ロードを実装しています。 ! !


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート