この記事では、PHP のグローバル変数 $GLOBALS と global の違いについて説明します。
公式説明: $GLOBALS — グローバル スコープで使用可能なすべての変数を指します。すべての変数を含むグローバル結合配列。変数の名前は配列のキーです。つまり、出現したグローバル変数は $GLOBALS 配列を通じて取得できます。
PHP ライフサイクルでは、関数本体の外で定義されたいわゆるグローバル変数を関数内で直接取得することはできません。
上記の例では、外部 $foo にアクセスするには、$GLOBALS 配列を使用する必要があります。これは、インクルード ファイルを介して取り込まれる外部グローバル変数にも当てはまります。 PHP の Global にもそのような関数があります。$GLOBALS との違いは、global は、関数の実際の外部変数ではなく、関数の外部変数を指すエイリアス変数を関数内に生成することです。関数。 $GLOBALS[] は実際には外部変数と呼ばれ、関数の内部と外部で常に一貫性を保ちます。 クラス内のメンバー変数の場合、クラス内の関数は $this-> メソッドを使用してアクセスする必要があり、$GLOBALS メソッドは使用できません。 global の役割はグローバル変数を定義することですが、このグローバル変数は Web サイト全体ではなく、現在のページ (include または require 内のすべてのファイルを含む) に適用されます。 </span>$foo="Example content";</p>test();<br />function test(){<br /> $foo="local variable";<br /> echo '$foo in current scope: '.$foo."<br>";<br /> echo '$foo in global scope: '.$GLOBALS["foo"]."<br>";<br /><p>}</p>
<p>function t1(){</p> global $var1,$var2;<br /> $var2=&$var1;<br />}<br />function t2(){<br /> $GLOBALS['var3']=&$GLOBALS['var1'];<br />}<br />$var1=5;<br />$var2=$var3=0;<br />t1();<br />print $var2."\n";<br />t2();<br /><p>print $var3."\n";</p>
<p>function t1(){</p> global $var1;<br /> $var1=2;<br /> unset($var1);<br />}<br />function t2(){<br /> $GLOBALS['var1']=3;<br /> unset($GLOBALS['var1']);<br />}<br />$var1=1;<br />t1();<br />print $var1."\n";<br />t2();<br /><p>print $var1."\n";</p>
<p>function test_global(){</p> global $var1;<br /> $var1='ok';<br /> unset($var1);<br />}<br />test_global();<br />$var2=&$var1;<br />unset($var1);<br /><p>echo $var2;</p>
<p>$waibu='out';</p>function ff(){<br /> echo $GLOBALS['waibu'];<br />}<br /><p>ff();</p>