この記事は、PHP でファイルをインクルードする際のいくつかの状況の範囲をまとめたものであり、誰もが include の使用に慣れるのに役立つことを願っています。
phpでは、ファイルをインクルードする必要がある場合があります。たとえば、以前フレームワークを書いていたとき、ネイティブ PHP をテンプレートとして使用し、そのテンプレート ファイルを導入する表示メソッドを記述する予定でしたが、これは私の想像にすぎませんでした。
書き終えた後、テンプレート内のすべての変数が未定義であることがわかりました。さまざまな調査と情報の検索を通じて、ファイルを含める場合のいくつかの状況における範囲をまとめました。
最初のケース: A ファイルには B ファイルが含まれており、A の変数は B ファイルで呼び出すことができます。
A ファイルコード:
<?php $aaa = '123'; include "B.php";
B ファイルコード:
<?php echo $aaa;
はコンテンツを正常に出力できます。
2 番目のケース: A ファイルに B ファイルが含まれており、B ファイルの変数を A ファイルで呼び出すことができます。
A ファイルコード:
<?php include "B.php"; echo $fff;
B ファイルコード:
<?php $fff = 'i am f';
この時点では、内容は正常に出力できます。
3番目のケース: ファイルA内の特定のクラスのメソッドでファイルBを呼び出し、ファイルBのメソッド内の変数を呼び出します。
A ファイルコード:
<?php class test{ public function show(){ $bbb = 'abc'; include "B.php"; } } $t = new test; $t->show();
B ファイルコード:
<?php echo $bbb;
この時点では、内容は正常に出力できます。
4 番目のケース: A ファイルは、定義された関数を通じて B ファイルをインポートします。 A の変数は B ファイルでは使用できませんが、A ファイルの呼び出し関数 (表示) の変数は使用できます。
A ファイルコード:
<?php $aaa = '123'; function display($file){ $bbb= 'asdasdas'; include $file; } display("B.php");
B ファイルコード:
<?php echo $aaa; echo $bbb;
実行後、$aaa プロンプトは未定義ですが、$bbb は正常に出力できます。
そこで、表示方法を使用してテンプレートを導入するのは現実的ではないと考え始めました。 3 つの状況に基づいて、最終的にテンプレート ファイルをインポートするクラスを作成することにしました。現在、ThinkPHP と Smarty もクラスを使用してテンプレート ファイルを導入しています。記事内の欠陥があれば修正していただければ幸いです。
関連する推奨事項:
php include、include_once、require、require_once 4つの関数の簡単な説明
以上がPHPにおけるインクルードファイルの変数スコープの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。