静的変数と通常の変数の違いは何ですか? PHP を初めて使用する多くの友人にとって、それは簡単ではないかもしれません。今日は、PHP の静的変数と通常の変数の違いを見ていきます。参照することができます
phpの静的静的変数と通常の変数の違い
変数の前にstaticを追加して静的変数(静的変数)を形成します。
静的変数と通常の変数の違いは、非静的グローバル変数のスコープはソースプログラム全体であることです。ソースプログラムが複数のソースファイルで構成されている場合、非静的グローバル変数は各ソースファイルで有効です。 静的グローバル変数はスコープを制限します。つまり、変数が定義されているソース ファイル内でのみ有効であり、同じソース プログラム内の他のソース ファイルでは使用できません。静的グローバル変数のスコープは 1 つのソース ファイルに限定され、そのソース ファイル内の関数でのみ共有できるため、他のソース ファイルでのエラーを回避できます。
静的変数と通常の変数の違い:
静的グローバル変数と通常のグローバル変数の違い: 静的グローバル変数は、他のファイル単位で参照されないようにするために一度だけ初期化されます。変数と通常のローカル変数: 静的ローカル変数は 1 回だけ初期化され、次回は前の結果値に基づいて行われます。
静的関数と通常の関数の違い: 静的関数はメモリ内にコピーを 1 つだけ保持し、通常の関数は 1 つのコピーを保持します。通話ごとにコピーします。
静的変数の利点:
は他のファイルからアクセスされず、競合することなく他のファイルを変更するために使用できます。メモリ内の場所: 静的ストレージ領域
スコープ: スコープは依然としてローカル スコープです。それを定義する関数またはステートメント ブロックが終了すると、スコープも終了します。
static を使用してグローバル変数を変更すると、グローバル変数のスコープが変更されます (グローバル変数が宣言されているファイルの外部には表示されません) が、静的ストレージ領域内にあるそのストレージの場所は変更されません。 。
<?php function Test() { $w3sky = 0; echo $w3sky; $w3sky++; /*函数每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有其到效果,因为一旦退出本函数则变量 $w3sky 就不存在了。*/ } ?>
<?php function Test() { static $w3sky = 0; echo $w3sky; $w3sky++; } //本函数每调用Test()都会输出 $w3sky 的值并加一。 ?>
<?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?>
以上がPHP の静的静的変数と通常の変数の違いを図で詳しく説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。