ホームページ  >  記事  >  バックエンド開発  >  PHP自動読み込みクラスの__autoload()関数の使い方

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

WBOY
WBOYオリジナル
2016-06-20 13:04:201289ブラウズ

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() は、授業! ! !多くのフレームワークは、この関数を使用してクラス ファイルの自動ロードを実装しています。 ! !


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