ホームページ >バックエンド開発 >PHPチュートリアル >php グローバル グローバル変数 雑談
PHP のグローバル変数は非常に便利そうに見えますが、注意しないと簡単に行き詰まってしまう可能性があります。
例: 単純な php 設定ファイルが次のような場合:
$name="Yi_Zhi_Yu";
この $name を使用したい場合、include を使用することは誰もが知っています。はい、これは機能します。しかし、統合された変更を容易にするために、この $name をグローバル変数として使用したい場合はどうすればよいでしょうか?
それも簡単です:
include("./config.inc");global $name;echo $name; //Yi_Zhi_Yu
次に、このグローバル変数を特定の関数で使用したい場合はどうすればよいでしょうか?このように書いてください
function test(){ include("./config.inc"); //这里加载是错误的 global $name; var_dump($name);}test();
申し訳ありませんが、このようにこの変数の値を取得することはできません。取得できるのは null だけです
これは私が実際に遭遇した落とし穴です。つまり、ファイルからロードされたグローバル変数の初期化は、スクリプト全体の最も外側の部分で行われます。レイヤー、私が話している最も外側のレイヤーは、関数本体やクラスに含めることができないことを意味します
うーん、それから、別の質問があります。test で定義されたグローバル属性を持つ変数です ( $age=25 を想定)、値が外部 ($age=27) で変更され、この変数 ($age) が別の関数で呼び出された場合、このときの $age の値は次のとおりです。 、これは初期化時の値 (25)、または外部で変更された値 (27) です。
include("./config.inc"); //最外层初始化全局变量function test(){ global $name; //使用的时候定义其全局属性 echo $name; //Yi_Zhi_Yu}test();はい、この値は 27 である必要があります。これはグローバル変数ですが、この定義と初期化はすべて関数本体で行われます (ただし、この方法はお勧めできません。通常、冒頭で述べた設定はファイル内で初期化されます) 、そのグローバル プロパティは使用時にのみ定義されますが、その値はコード内で変更されず、構成アイテムとしてのみ取得されます)。