ホームページ  >  記事  >  バックエンド開発  >  Xin Xing をフォローして、PHP の自動読み込みについて学びましょう

Xin Xing をフォローして、PHP の自動読み込みについて学びましょう

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

フレームワークとして、ファイルをロードするメカニズムは不可欠ですが、それをどのようにロードするかは PHP がすでに考えているので、それを完了できる PHP の関数は 2 つあります。この関数、最初の関数は __autoload ですが、現在はほとんど使用されていません。PHP5.2.1 以降のバージョンが必要なので、安全に使用できます。

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

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

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

bool spl_autoload_register ( [callback $autoload_function] )
次に、同じレベルのディレクトリに次の内容の新しい a.php ファイルを作成します:

<?phpclass B {	private $name = "辛星";	private $age = 23;	function getmsg(){		return "姓名是:".$this->name."   年龄是:".$this->age;	}}
ここでのクラス B は次のとおりです。つまり、クラス B のインスタンスを定義すると、システムはファイルをロードする必要があることがわかり、すべてのロード関数を探して B でそれを見つけるため、正しくインスタンス化できます。 .class.php B の定義は、ファイルがロードされることを意味します。ここでは B.class.php のみがインポートされ、他の同様の形式はインポートされないことに注意してください。




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