global で定義された 変数 は、グローバル変数です。たとえば、関数 内の変数が、関数の外にある同じ名前の変数と PHP の同じ変数ではない場合、この変数を定義するために global を使用します。外部変数変数名と同じ関数の場合、それらは変数になります。いくつかの例を見てみましょう。
PHP 初心者の場合、global キーワードを使用すると、関数の外にある変数が関数内でグローバル化されているにもかかわらず、変数が正しく出力されない (つまり、グローバル変数が無効である) 場合があります。簡単で一般的な例を見てみましょう。
ここには、a.php と b.php の 2 つのページがあります。
b.php ページのコードは次のとおりです:
<?php $site_name = 'CodePlayer'; function sayHi(){ global $site_name; echo "Hello! Welcome to $site_name !"; } ?>
a.php ページのコードは次のとおりです:
<?php function include_view_page(){ include 'b.php'; sayHi(); } include_view_page(); ?>
上記の例は、a.php ページにアクセスしたときに、welcome ステートメントが表示されることを願っています。正しく表示されるようになります。しかし、残念なことに、ブラウザを使用して a.php ページにアクセスすると、出力結果は次のようになります:
Hello! Welcome to !
つまり、関数 include_view_page() で SayHi() 関数を呼び出すと、 b.php ページのsayHi() 関数内のグローバル $site_name が正しく認識されず、有効になりませんでした。これは一体どういうことなのでしょうか?
実際、b.php ページを include_view_page() 関数に含めると、b.php ページの変数 $site_name は include_view_page() 関数内のスコープに格納されるのと同じになります。ご存知のとおり、関数内の変数をグローバル化すると、実際には関数内のページのグローバル変数への 参照 が確立されます。この例では、$site_name 変数は a.php の include_view_page() 関数内のローカル変数にすぎないため、当然のことながら、関連する呼び出しを行うときに、正しい変数と変数値を取得することはできません。 。
PHP では、関数内にページを含めるとページ内の 変数 のスコープが変更されるという上記の問題に特に注意する必要があります。この状況を回避するには、マルチレベルの include 呼び出しを減らし、関数内で include を使用しないようにする必要があります。さらに、b.php ページで $site_name をグローバル変数の形式で宣言することもできます。コードは次のとおりです。
<?php global $site_name; $site_name = 'CodePlayer'; function sayHi(){ global $site_name; echo "Hello! Welcome to $site_name !"; } ?>
たとえば、関数内でグローバル変数を参照するには、まず次のコードを見てください。
<?php $var1 = "#####"; $var2 = "&&&&&"; function global_references($use_globals) { global $var1, $var2; if (!$use_globals) { $var2 =&$var1; //1 } else { $GLOBALS["var2"] =&$var1; //2 } } global_references(false); echo "var2 is set to '$var2'<br/>"; global_references(true); echo "var2 is set to '$var2'<br/>"; ?>
出力結果は次のとおりです:
var2 is set to '&&&&&' var2 is set to '#####'
Visible、上記のコード: $var2 =&$var1; //1 は関数内でのみ表示されます。
そして $GLOBALS["var2"] =&$var1; はグローバル スコープで表示されます。
以上がPHP はグローバルを使用して、効果のないグローバル変数に対するソリューションを定義しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。