変数のスコープは、変数が定義されているコンテキスト (つまり、変数が有効になるスコープ) です。ほとんどの PHP 変数にはスコープが 1 つだけあります。この単一スコープ スパンには、include および require によって導入されたファイルも含まれます
例:
コードは次のとおりです:
<?php $a = 1; include 'b.inc'; ?>
ここで、変数 $a は include ファイル b.inc で有効になります。ただし、ユーザー定義関数では、ローカル関数スコープが導入されます。関数内で使用される変数はデフォルトでローカル関数のスコープに制限され、現時点ではローカル変数です。
PHP のグローバル変数は、関数で使用するときにグローバルとして宣言する必要があります。
関数内でglobalを使って宣言された変数はグローバル変数となり、関数の外でも使用できます。注: 変数をグローバルに宣言する場合、変数に値を直接割り当てることはできません。最初に変数を宣言してから、値を割り当てる必要があります。
グローバルスコープでは、
$GLOBALSを通じてグローバル変数にアクセスすることもできます。関数内でグローバル変数にアクセスするためにglobalキーワードを使用する必要はありません。 $GLOBALS は連想配列であり、各変数は要素であり、キー名は変数名に対応し、値は変数の内容に対応します。 $GLOBALS がグローバル スコープに存在する理由は、$GLOBALS が スーパーグローバル変数 であるためです。 変数のスコープに関係なく、どこでも定数を定義してアクセスできます
変数スコープのもう 1 つの重要な機能は、静的変数 (静的変数
) です。静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。静的変数は最初の呼び出し時にのみ初期化されます。宣言時に値を割り当てることはできますが、式の値にすることはできません。これを宣言内の式の結果に代入すると、解析エラーが発生します。
参照 (& が付いた変数またはオブジェクト) が静的変数に代入される場合、その参照は静的に保存されず、関数が 2 回目に呼び出されるときに静的変数の値は記憶されません。同様に、参照 (& が付いた変数またはオブジェクト) がグローバル変数に割り当てられている場合、この変数の変更は関数の外部には影響せず、スコープは関数内のみになります。
以上がphpの変数スコープとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。