PHPにおけるインクルードファイルの変数スコープの詳細説明

*文
リリース: 2023-03-18 17:46:01
オリジナル
2009 人が閲覧しました

この記事は、PHP でファイルをインクルードする際のいくつかの状況の範囲をまとめたものであり、誰もが include の使用に慣れるのに役立つことを願っています。

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

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

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

A ファイルコード:


<?php
 $aaa = &#39;123&#39;;
 
 include "B.php";
ログイン後にコピー


B ファイルコード:


<?php

echo $aaa;
ログイン後にコピー


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

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


<?php

include "B.php";

echo $fff;
ログイン後にコピー


B ファイルコード:


<?php

$fff = &#39;i am f&#39;;
ログイン後にコピー


この時点では、内容は正常に出力できます。

3番目のケース: ファイルA内の特定のクラスのメソッドでファイルBを呼び出し、ファイルBのメソッド内の変数を呼び出します。
A ファイルコード:


<?php

class test{
  public function show(){
    $bbb = &#39;abc&#39;;
    include "B.php";
  }
}

$t = new test;
$t->show();
ログイン後にコピー


B ファイルコード:


<?php

echo $bbb;
ログイン後にコピー


この時点では、内容は正常に出力できます。

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


<?php
$aaa = &#39;123&#39;;

function display($file){
  $bbb= &#39;asdasdas&#39;;
  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 include_onceの詳細な説明

php include 法律の詳細な説明

以上がPHPにおけるインクルードファイルの変数スコープの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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