ホームページ  >  記事  >  バックエンド開発  >  PHP のインクルード ファイルの可変スコープに関する研究、_PHP チュートリアル

PHP のインクルード ファイルの可変スコープに関する研究、_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:51:09775ブラウズ

PHPのインクルードファイルの変数スコープの研究

PHP では、ファイルをインクルードする必要がある場合があります。たとえば、以前フレームワークを書いていたとき、ネイティブ PHP をテンプレートとして使用し、そのテンプレート ファイルを導入する表示メソッドを記述する予定でしたが、これは私の想像にすぎませんでした。

書いた後、テンプレート内のすべての変数が未定義であることがわかりました。さまざまな調査と情報の検索を通じて、ファイルを含める場合のいくつかの状況における範囲をまとめました。

最初のケース: ファイル A にはファイル B が含まれており、A の変数はファイル B で呼び出すことができます。

ファイルコード:

リーリー

B ファイルコード:

リーリー

コンテンツは正常に出力できます。

2 番目のケース: ファイル A にファイル B が含まれており、ファイル B の変数をファイル A で呼び出すことができます。

ファイルコード:

リーリー

B ファイルコード:

リーリー

現時点では、コンテンツは正常に出力できます。

3 番目の状況: ファイル A 内の特定のクラスのメソッドでファイル B が呼び出され、メソッド内の変数がファイル B で呼び出されます。

ファイルコード:

リーリー

B ファイルのコード:

リーリー

現時点では、コンテンツは正常に出力できます。

4 番目のケース: ファイル A は、定義された関数を通じてファイル B をインポートします。 A の変数はファイル B では使用できませんが、ファイル A の呼び出し関数 (表示) の変数は使用できます。

ファイルコード:

リーリー

B ファイルコード:

リーリー

実行後、$aaaは未定義である旨のメッセージが出ますが、$bbbは正常に出力できます。

元のリンク: http://www.cnblogs.com/dragondean/

そこで、表示方法を使ってテンプレートを導入するのは現実的ではないと考え始めました。 3 つの状況に基づいて、最終的にテンプレート ファイルをインポートするクラスを作成することにしました。現在、ThinkPHP と Smarty もクラスを使用してテンプレート ファイルを導入しています。記事内の欠陥があれば修正していただければ幸いです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1015276.html技術記事 PHP におけるインクルード ファイルの可変スコープに関する研究 PHP では、ファイルをインクルードする必要がある場合があります。たとえば、少し前にフレームワークを書いていたとき、ネイティブ PHP をテンプレートとして使用する予定でした...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。