変数はグローバル変数とローカル変数に分けられます。 C 言語を学習したことがある人なら、グローバル変数のスコープがファイル全体であることを知っています。関数内でも有効ですが、PHP では関数内でグローバル変数を使用すると、PHP は変数が定義されていないとみなします。関数内でこのグローバル変数を使用する必要がある場合は、関数内のグローバル変数の前にキーワード global を追加する必要があります。以下は私が書いた小さなデモです。私が上で言ったことを証明するには
<code><span><span><?php</span><span>$str</span> = <span>"string"</span>; <span><span>function</span><span>test</span><span>()</span> {</span><span>if</span> (<span>isset</span>(<span>$str</span>)) { <span>echo</span><span>"the string is defined"</span>; } <span>else</span> { <span>echo</span><span>"the string is undefined"</span>; } } test(); <span>?></span></span></code>
これはブラウザで実行した結果です:
文字列は未定義です
<code><span><span><?php</span><span>$str</span> = <span>"string"</span>; <span><span>function</span><span>test</span><span>()</span> {</span><span>global</span><span>$str</span>;<span>//上面的test函数中没有这句话</span><span>if</span> (<span>isset</span>(<span>$str</span>)) { <span>echo</span><span>"the string is defined"</span>; } <span>else</span> { <span>echo</span><span>"the string is undefined"</span>; } } test(); <span>?></span></span></code>
これはブラウザで実行した結果です:
文字列は定義されています
$GLOBALS — グローバルスコープで使用可能なすべての変数への参照
すべての変数を含むグローバル結合配列。変数の名前は配列のキーです。
<code><span><span><?php</span><span><span>function</span><span>test</span><span>()</span> {</span><span>$foo</span> = <span>"local variable"</span>; <span>echo</span><span>'$foo in global scope: '</span> . <span>$GLOBALS</span>[<span>"foo"</span>] . <span>"\n"</span>; <span>echo</span><span>'$foo in current scope: '</span> . <span>$foo</span> . <span>"\n"</span>; } <span>$foo</span> = <span>"Example content"</span>; test(); <span>?></span></span></code>
上記のルーチンの出力は次のようになります:
<code><span>$foo</span><span>in</span><span>global</span> scope: Example content <span>$foo</span><span>in</span> current scope: <span>local</span><span>variable</span></code>
以上、PHP における global の使い方を内容も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。