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

WBOY
リリース: 2016-06-23 13:09:11
オリジナル
1035 人が閲覧しました

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();
ログイン後にコピー


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











ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!