ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルのインクルード ファイルの変数スコープに関する簡単な説明
この記事は、PHP でファイルをインクルードする際のいくつかの状況のスコープをまとめたもので、誰もが慣れるのに役立つことを願っています。インクルードの使用。
PHPではファイルをインクルードする必要がある場合があります。たとえば、以前フレームワークを書いていたとき、ネイティブ PHP をテンプレートとして使用し、そのテンプレート ファイルを導入する表示メソッドを記述する予定でしたが、これは私の想像にすぎませんでした。
書き終えた後、テンプレート内のすべての変数が未定義であることがわかりました。さまざまな調査と情報の検索を通じて、ファイルを含める場合のいくつかの状況における範囲をまとめました。
最初の状況: ファイル A にはファイル B が含まれており、A 内の変数はファイル B で呼び出すことができます。
ファイルコード:
?
1 2 3 4 |
$aaa = '123';
「B.php」を含める; |
Bファイルコード:
?
1 2 3 |
エコー$aaa; |
内容は正常に出力できます。
2番目のケース: ファイルAにファイルBが含まれており、ファイルBの変数をファイルAで呼び出すことができます。
ファイルコード:
?
1 2 3 4 5 |
「B.php」を含める;
エコー $fff; |
Bファイルコード:
?
1 2 3 |
$fff = '私は f'; |
現時点ではコンテンツは正常に出力できます。
3番目の状況:ファイルA内の特定のクラスのメソッドでファイルBが呼び出され、そのメソッド内の変数をファイルBで呼び出すことができます。
ファイルコード:
?
1 2 3 4 5 6 7 8 9 10 11 |
クラステスト{ パブリック関数 show(){ $bbb = 'abc'; 「B.php」を含める; } }
$t = 新しいテスト; $t->show(); |
ファイルBのコード:
?
1 2 3 |
エコー $bbb; |
現時点ではコンテンツは正常に出力できます。
4番目の状況: ファイルAは、定義された関数を通じてファイルBをインポートします。Aの変数はファイルBでは使用できませんが、ファイルAの呼び出し関数(表示)の変数は使用できます。
ファイルコード:
?
1 2 3 4 5 6 7 8 9 |
$aaa = '123';
関数表示($file){ $bbb= 'アスダスダス'; $file を含める; }
display("B.php"); |
Bファイルコード:
?
1 2 3 |
エコー$aaa; エコー $bbb; |
実行後、$aaaは未定義である旨のプロンプトが出ますが、$bbbは正常に出力できます。
そこで、表示方法を使ってテンプレートを導入するのは現実的ではないと考え始めました。 3 つの状況に基づいて、最終的にテンプレート ファイルをインポートするクラスを作成することにしました。現在、ThinkPHP と Smarty もクラスを使用してテンプレート ファイルを導入しています。記事内の欠陥があれば修正していただければ幸いです。
以上がこの記事の全内容ですが、皆さんに気に入っていただければ幸いです。