静的な変数
当ページのリンクには広告が含まれています。
ここではPHPの静的な変数について解説していきます。
静的な変数
通常、関数内で定義した変数は、その関数を呼び出すたびに初期化されます。しかし、「静的な変数」は定義すると、関数を複数回呼び出しても初期化されずに、その値は保持されます。
static 変数名
静的な変数を定義する場合は、このように「変数名」の前に「static」と記述します。
サンプルスクリプト
「hoge」という関数内で静的な変数「$count」を定義し、+1 した戻り値を返します。
<?php function hoge() { static $count = 0; return ++$count; } echo hoge() ."\n"; echo hoge() ."\n"; echo hoge() ."\n"; echo hoge() ."\n"; ?>
実行結果です。静的な変数なので、関数を呼び出すたびに「+1」されていることがわかります。
1 2 3
比較として通常の変数を使った関数のサンプルスクリプトもご覧ください。
<? function hoge() { $count = 0; return ++$count; } echo hoge() ."\n"; echo hoge() ."\n"; echo hoge() ."\n"; echo hoge() ."\n"; ?>
実行結果です。静的な変数とは異なり、変数が初期化されていることがわかります。
1 1 1
次は「変数のスコープ(有効範囲)」をみてみましょう。