PHP のグローバル変数は C 言語とは少し異なります。 C 言語では、ローカル変数でカバーされていない限り、グローバル変数は関数内で自動的に有効になります。これにより、誰かが不用意にグローバル変数を変更してしまう可能性があるため、問題が発生する可能性があります。 PHP のグローバル変数を関数で使用する場合は、global を使用してグローバルとして宣言する必要があります。
1. 例との比較
例 1:
コードは次のとおりです | コードをコピー |
$var1 = 1;
関数テスト(){ unset($GLOBALS['var1']); } テスト(); $var1 をエコーします。 ?> |
$var1 が削除されたため、何も出力されません。
コードは次のとおりです
$var1 = 1; 関数テスト(){ | |
誤って1を印刷してしまいました。これは、エイリアス参照のみが削除され、その値がまったく変更されていないことを証明します。 2. 説明 Global $var は実際には &$GLOBALS['var'] であり、これは外部変数を呼び出すための単なるエイリアスです。 上記のコードの $var1 と $GLOBALS['var1'] は、2 つの異なる変数ではなく、同じ変数を参照します。 |
PHP のグローバル変数は C 言語のグローバル変数とは少し異なります。 C 言語では、ローカル変数でカバーされていない限り、グローバル変数は関数内で自動的に有効になります。これにより、誰かが不用意にグローバル変数を変更してしまう可能性があるため、問題が発生する可能性があります。 PHP のグローバル変数を関数で使用する場合は、global を使用してグローバルとして宣言する必要があります。
3.結論
1.$GLOBALS['var'] は外部グローバル変数そのものです
http://www.bkjia.com/PHPjc/632199.html