変数のスコープは、変数が定義されているコンテキスト (つまり、変数が有効になるスコープ) です。ほとんどの PHP 変数にはスコープが 1 つだけあります。この単一スコープ スパンには、include および require によって導入されたファイルも含まれます。
例:
コードは次のとおりです | コードをコピーします |
$a = 1; include 'b.inc'; ?> |
ここで変数 $a はインクルード ファイル b.inc で有効になります。ただし、ユーザー定義関数では、ローカル関数スコープが導入されます。関数内で使用される変数は、デフォルトではローカル関数のスコープに制限されます。例:
コードは次のとおりです | コードをコピー |
$a = 1; /* グローバルスコープ */ function Test(){ echo $a; /* ローカル スコープ変数への参照 */ }
Test();?>
|
echo ステートメントは変数 $a のローカル バージョンを参照しているため、このスクリプトには出力はありません。このスコープには値が割り当てられていません。 PHP のグローバル変数は C 言語とは少し異なることに気づくかもしれません。C 言語では、ローカル変数によってオーバーライドされない限り、グローバル変数は関数内で自動的に有効になります。これにより問題が発生する可能性があり、誰かが誤ってグローバル変数を変更してしまう可能性があります。 PHP のグローバル変数を関数で使用する場合は、グローバル変数を宣言する必要があります。关グローバル キーワード
まず、グローバルの使用例:
例 #1 グローバル
を使用します
コードは次のようになります コードをコピーします & & & & & & & & & & & & & & & & & & = 2; |
function Sum() | {
global $a, $b; $b = $a + $b; }
Sum(); echo $b;?>
上記のスクリプトの出力は「3」になります。グローバル変数 $a と $b は関数内で宣言されており、任意の変数のすべての参照変数はグローバル変数を指します。 PHP では、関数が宣言できるグローバル変数の最大数に制限はありません。
グローバル スコープ内の変数にアクセスする 2 番目の方法は、特別な PHP カスタム $GLOBALS 配列を使用することです。前の例は次のように記述できます:
例 #2 $GLOBALS を使用して global |
を置き換えます
コードは次のとおりです
コードをコピーします
$a = 1; $b = 2; | 関数 Sum() | { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];}Sum(); echo $b ; ?>
1 2 3
http://www.bkjia.com/PHPjc/444672.htmlwww.bkjia.com |
true
http://www.bkjia.com/PHPjc/444672.html
技術記事変数のスコープは、変数が定義されているコンテキスト (つまり、変数が有効になるスコープ) です。ほとんどの PHP 変数にはスコープが 1 つだけあります。この単一範囲スパンには、以下も含まれます...