phpにはスーパーグローバル変数$GLOBALSがありますが、あまり使われていません。この変数を適切に使用すると、作業をより効率的に行うことができます。この記事では主に、このスーパー グローバル変数の使用法と、$GLOBALS とグローバルの違いについて分析します。
$GLOBALS 定義: グローバル スコープで使用可能なすべての変数を指します (すべての変数を含むグローバル結合配列。変数の名前は配列のキーです)。他のすべてのスーパーグローバル変数とは異なり、$GLOBALS はどこでも使用できます。 PHP コード この場所は常に利用可能であり、$GLOBALS 変数の結果を出力することでわかります。
PHP ライフサイクルでは、関数本体の外で定義されたいわゆるグローバル変数を関数内で直接取得することはできません。関数本体内で外部定義されたグローバル変数にアクセスしたい場合は、グローバル宣言を通じてアクセスするか、$GLOBALS を直接使用できます。例:
リーリー結果は次のように出力されます:
タオバオ
www.phpernote.com
www.google.cn
以下では主に global と $GLOBALS の違いについて説明します:
$GLOBALS['var'] は外部グローバル変数そのものであり、global $var は外部 $var と同じ名前の参照またはポインタです。つまり、global は関数内でそれを指すエイリアス変数を生成します。実際の関数ではなく、関数の外部変数です。$GLOBALS[] は実際に外部変数を呼び出し、関数は常に内部と外部で一貫性を保ちます。例で説明してみましょう:
リーリー印刷結果は1です
リーリー印刷結果は2です。出力結果が 2 になるのはなぜですか?実際には、$var1 の参照が $var2 の参照アドレスを指しているためです。結果として得られる物質の価値は変わりません。別の例を見てみましょう。
リーリー$var1が削除されたため、何も出力されませんでした。
リーリー印刷結果は1です。これは、エイリアス参照だけが削除され、値自体は何も変更されていないことを示しています。つまり、グローバル $var は実際には $var=&$GLOBALS['var'] になります。これは外部変数を呼び出すための単なるエイリアスです。