ホームページ  >  記事  >  バックエンド開発  >  PHPの自動読み込み

PHPの自動読み込み

WBOY
WBOYオリジナル
2016-07-29 09:02:17908ブラウズ

クラスの自動ロード

外部ページでは、クラスファイルを導入する必要はありませんが、プログラムは必要に応じてクラスを自動的に「動的にロード」します。

  • オブジェクトを新規作成するとき
  • クラス名を直接使用します(静的プロパティとメソッドを操作するため)

__autoloadマジック関数を使用します
2 つの状況が発生した場合、この関数が呼び出されます。この関数では、事前に関数を定義し、クラス ファイルをロードするための一般的なステートメントを記述する必要があります

<code><span><span>function</span><span>__autoload</span><span>(<span>$name</span>)</span>{</span><span>require</span><span>'./lib/'</span>.<span>$name</span>.<span>'.class.php'</span>;
}</code>

spl_autoload_register() を使用します
__autoload()の代わりとなる関数を複数登録(宣言)する場合に使用します。当然これらの関数を定義する必要があり、関数の機能は__autoload()と同じですが、この時点でより多くの状況に対応できます

<code><span>//注册用于自动加载的函数</span>
spl_autoload_register(<span>"model"</span>);
spl_autoload_register(<span>"controll"</span>);
<span>//分别定义两个函数</span><span><span>function</span><span>model</span><span>(<span>$name</span>)</span>{</span><span>$file</span> = <span>'./model/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    <span>if</span>(file_exists(<span>$file</span>)){
        <span>require</span><span>'./model/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    }
}
<span>//如果需要一个类,但当前页面还没加载该类</span><span>//就会依次调用model()和controll(),直到找到该类文件加载,否则就报错</span><span><span>function</span><span>controll</span><span>(<span>$name</span>)</span>{</span><span>$file</span> = <span>'./controll/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    <span>if</span>(file_exists(<span>$file</span>)){
        <span>require</span><span>'./controll/'</span>.<span>$name</span>.<span>'.class.php'</span>;
    }
}</code>
').addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

上記は、PHP の自動読み込みについて、その側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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