ホームページ  >  記事  >  バックエンド開発  >  変数のアクティブ スコープ_PHP チュートリアル

変数のアクティブ スコープ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:26:56850ブラウズ

変数のスコープは、変数が定義されているコンテキストに制限されます。ほとんどのセクションでは、すべての PHP 変数に対してスコープが 1 つだけあります。ただし、ユーザー定義関数では、ローカル関数スコープの概念が導入されます。この関数で使用される変数は、デフォルトでは関数のローカル スコープに制限されます。例:

$a = 1; /* グローバルスコープ */
Function Test () {
echo $a; /* ローカルスコープ変数への参照 */ }

このスクリプトは Any を引き起こしません。変数 "$a" の宣言がローカル変換に送信され、変数にはアクティブ スコープ内の値が割り当てられていないため、出力が得られます。これは、関数内で別途指定しない限り、グローバル変数が自動的に使用可能になる C とは少し異なることに気づくでしょう。グローバル変数の値を誤って変更してしまう可能性があるため、これによりプログラムで多くの問題が発生する可能性があります。 PHP では、この関数でグローバル変数を使用する場合は、関数内でグローバル変数を宣言する必要があります。例は次のとおりです。
$a = 1;
$b = 2;
global $a, $b;
Sum (); echo $ b;

上記のスクリプトでは「3」が出力されます。グローバル変数 $a と $b は関数内で宣言されており、これら 2 つの変数への参照はすべてグローバル変数に割り当てられます。関数が操作できるグローバル変数の数に制限はありません。
グローバル変数を受け入れる 2 番目の方法は、PHP の特殊な定義配列 $GLOBALS を使用することです。
$a = 1;
$b = 2; = $GLOBALS["a"] + $GLOBALS["b"];
Sum ();

$GLOBALS 配列は、変数の名前として「global」を使用します。グローバル変数は、この変数配列内の要素の値となります。






変数スコープに関するもう 1 つの重要な機能は、「静的変数」です。静的変数はローカル関数のアクティブなスコープ内にのみ存在しますが、プログラムがこのスコープを離れてもその値は失われません。次の例を参照してください:

Function Test () {
$a = 0;

$a++; } }
この関数は、変数 $a を 0 に設定して出力します。 「0」なので、ほとんど効果がありません。式「$a++」は変数の値をインクリメントしますが、変数 $a は関数が終了するたびに消えます。現在の計算を失わずにカウント関数を使用するには、次の例に示すように、変数 $a を static に設定します。 a++;
これで、Test() 関数が呼び出されるたびに、変数 $a とその時点でインクリメントされた後の値が出力されます。
関数が再帰的に呼び出される場合、静的変数の使用は非常に重要な方法です。再帰関数は、それ自体を呼び出すことができる関数です。再帰関数を作成するときは、考えられるループ定義に注意する必要があります。この再帰的なプロセスを中断する適切な方法が必要です。次の例は 10 回再帰します。 ;
}





http://www.bkjia.com/PHPjc/531939.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/531939.html

技術記事

変数のスコープは、変数が定義されているコンテキストに制限されます。ほとんどのセクションでは、すべての PHP 変数に対してスコープが 1 つだけあります。ただし、ユーザー定義関数では、次のようになります...





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。