PHPの静的ステートメント
PHPの静的ステートメントの魔法は、関数が次に呼び出されたときにローカル変数の値を「記憶」できるようにすることです。

このチュートリアルでは、PHP静的ステートメントを使用してPHP関数に「メモリ」を与える方法を学習します。基本的なPHP関数には、関数内で作成または変更されたローカル変数の値を記憶する機能がありません。関数が終了すると、関数の変数の値に関するすべての知識が消えます。この問題を回避するには、PHP静的ステートメントを使用して、関数の呼び出しから次の呼び出しまでのローカル変数の値を記憶するように関数に指示します。基本的なコードを見てみましょう。

関数count_calls()
{
static $ no_calls = 0;
$ no_calls ++;
echo "この関数は$ no_calls回呼び出されました。";
}


関数function_name()
関数count_calls()
ここには新しいものは何もありません。過去のチュートリアルのように、関数名はこの関数を識別し、関数の指示は次の{と}の間に配置されます。

静的$変数=値;
static $ no_calls = 0;
これは、この関数が呼び出された回数の現在の合計を保持する(および記憶する)ために使用される静的ステートメントです。関数が最初に呼び出されると、静的ステートメントは$ no_calls変数を初期値0に初期化します。その後、関数が続行されると、変数の値が1ずつ増加します。変数の増加した値は前回から記憶されます。静的ステートメントがなければ、この関数が呼び出されるたびに変数の値がゼロになることに気付くまで、これは魔法のように思えないかもしれません。

$ variable ++;
$ no_calls ++;
この式は、$ no_calls変数の現在の値を1増やします。静的ステートメントの魔法は、関数が次回呼び出されたときに$ no_calls変数の増加した値を「記憶」できることです。

エコー文
echo "この関数は$ no_calls回呼び出されました。";
このechoステートメントは、テキストと$ no_calls変数の新しい(増加した)値をWebブラウザーに出力します。

これが私たちの機能のすべてです。次回この関数が呼び出されたとき、$ no_calls変数の値は、関数の最後の実行から記憶され、再び1増加します。





動画の説明: 動的ファシアと静的ファシア (かもしれません 2024).