PHP マニュアルを読んでいると、次のコードを見つけました:
コードをコピー コードは次のとおりです:
function Test()
{
static $count = 0; $count++;
echo $count;
if ($count < 10) {
$count--;
実行結果は次のとおりです。静的に宣言された再帰関数。変数 count は回数を記録し、1 ~ 10 を出力します。
見ていて疑問に思ったのですが、再帰的に呼び出すと static $count = 0; という文が繰り返し実行されるのですが、なぜ count 変数が繰り返し代入されないのでしょうか?同僚とこの質問を検討したところ、テスト コードは次のとおりです。
echo 'start
'; $a = 10 ; echo "$a
"; echo "$a
";
$GLOBALS['a'] = 10;
echo "$a
"; ;br />gt ;";
unset($GLOBALS['a']);
echo "$a
";
static $a;
echo "$a
";
静的 $a = 40;
$a = 100;
静的 $a = 50; a
";
static $a = 4;
echo "$a
";
echo 'end
';
exit;
?>
実行 結果は以下の通りです:
start
4
4 10 10 定義された変数: a
この時点で、マニュアルで見つかった問題はほぼ解決されました。つまり、再帰呼び出し内のステートメントは $count の値を変更しなかったため、$count=10 で再帰が正常に停止しました。
間違った理解があるかもしれませんが、お気軽にコメントください。 以上、スターアライアンス PHP における静的キーワード原理の調査、研究、分析をスターアライアンスの内容も含めて紹介しましたので、PHP チュートリアルに興味のある友人の参考になれば幸いです。