Xin Xing をフォローして、PHP の自動読み込みについて学習してください

WBOY
リリース: 2016-06-13 12:02:42
オリジナル
897 人が閲覧しました

PHP の自動ロードについて学ぶには、Xin Xing を参照してください

フレームワークとして、ファイルをロードするメカニズムは不可欠です。どのようにロードすればよいでしょうか。PHP はすでにそれを考えてくれているので、ルールに従うだけで済みます。 PHP にはこの機能を実行できる関数が 2 つあります。1 つ目は __autoload ですが、現在はより強力な spl_autoload_register に置き換えられています。弊社のメインストリームバージョンはサポートされておりますので、安心してご利用いただけます。

以前の PHP バージョンでは、設定ファイル、データベース接続ファイル、ログ ファイルなどの一連のファイル名が必要になることがよくありました。その後、関数内に __autoload 関数が追加されました。すべてのインポート作業を完了する利点は、プログラムで処理できることです。たとえば、正規表現を使用すると、一度に n 個のファイルをインポートできるため、ある程度の操作には非常に便利です。ただし、__autoload Write を使用する必要があります。すべてのタイプの場合、そうしないと自動ロードが適切に実装されません。

spl_autoload_register の機能は、n 個のロード関数を登録することです。いつでもどこでもこの組み込み関数を使用して、ロードする必要があるファイル名を指定できます。その関数のプロトタイプは次のとおりです。

bool spl_autoload_register ( [callback $autoload_function] )
ログイン後にコピー
コードで練習してみましょう:

まず、次の内容の B.class.php を作成します:

<?phpclass B {	private $name = "辛星";	private $age = 23;	function getmsg(){		return "姓名是:".$this->name."   年龄是:".$this->age;	}}
ログイン後にコピー
次に、同じディレクトリに新しい a を作成します。 .php ファイルの内容は次のとおりです:

<?php//先定义一个加载函数function xin_load($class){	$file = $class.".class.php";	if(file_exists($file)){		require_once($file);	}}//然后注册它spl_autoload_register(&#39;xin_load&#39;);$class = new B();echo $class->getmsg();
ログイン後にコピー
ここでクラス B が正しくインスタンス化できる理由は、クラス B のインスタンスを定義するときに、システムがファイルをロードする必要があることを認識するためです。 . そこで、彼はすべての読み込み関数を探し、B.class.php で B の定義を見つけて、ファイルを読み込みました。ここでは B.class.php のみがインポートされ、他の形式も同様であることに注意してください。輸入されないこと。





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