ホームページ  >  記事  >  バックエンド開発  >  PHPでのカスタムクラスファイルの自動ロード

PHPでのカスタムクラスファイルの自動ロード

WBOY
WBOYオリジナル
2016-06-23 13:09:111037ブラウズ

php では、多くのクラス ファイルを参照することがよくありますが、複数のファイル ディレクトリに異なるファイルをロードするにはどうすればよいですか?

php はいくつかの自動ロード関数を提供します

クラスファイルが現在のディレクトリの lib/User.class.php であると仮定します

1、自動ロード関数: __autoload()

function __autoload($class){include 'lib/'.$class.'.class.php';}$User=new User();

説明: オブジェクトをインスタンス化するときに、検索しますそうでない場合は、__autoload() メソッドが自動的に実行され、クラス名が __autoload() メソッドに渡され、一致するクラス ファイルが導入されます。

2. クラス ファイルをロードする関数をカスタマイズします

関数 spl_autoload_register() によって実装されます

function A($class){include 'lib/'.$class.'.class.php';}spl_autoload_register('A');$User= new User();

説明: 前のものと同様に、最初に現在のファイルに違いは、それが __autoload() と同時に存在する場合、 __autoload() は実行されないことです

3. カスタム オブジェクトのクラス ファイル

のロードも spl_autoload_register を通じて行われます。実装する(array( 'オブジェクト', 'メソッド名'))

class A{    public function Aauto($class){    include 'lib/'.$class.'.class.php';    }}$A=new A();sql_autoload_register(array($A,'Aauto'));$User= new User();

はクラスファイルをロードするカスタム関数と同じです。順序を間違えないように注意してください

4. クラスをロードする静的メソッドを指定します。 files

spl_autoload_register (array('クラス名','静的メソッド名')) を実現する(2つの書き方)

1つ目:

class A{    public function Aauto($class){    include 'lib/'.$class.'.class.php';    }}sql_autoload_register(array('A','Aauto'));$User= new User();

2つ目:

class A{    public function Aauto($class){    include 'lib/'.$class.'.class.php';    }}sql_autoload_register(array('A::Aauto'));$User= new User();


上記のメソッドは個人的な概要、間違いがある場合はお知らせください。すぐに修正します。ありがとうございます。











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