PHP 静的静的変数
変数スコープのもう 1 つの重要な機能は、静的変数です。静的変数はローカル関数スコープ内にのみ存在しますが、プログラムの実行がこのスコープを離れても、その値は失われません。以下の例を見てください:
静的変数の必要性を示す例
<ol class="dp-xml"><li class="alt"><span><span class="tag"><?</span><span class="tag-name">PHP</span><span> </span></span></li><li><span> function Test() </span></li><li class="alt"><span> { </span></li><li><span> $</span><span class="attribute">w3sky</span><span> = </span><span class="attribute-value">0</span><span>; </span></li><li class="alt"><span> echo $w3sky; </span></li><li><span> $w3sky++; </span></li><li class="alt"><span> } </span></li><li><span> </span><span class="tag">?></span><span> </span></span></li></ol>
この関数は、呼び出されるたびに $w3sky の値を 0 に設定し、「0」を出力するため、あまり役に立ちません。この関数が終了すると変数 $w3sky は存在しないため、変数 $w3sky++ を 1 つ増やしても効果はありません。このカウント値を失わないカウント関数を作成するには、変数 $w3sky を静的として定義します。
Example 静的変数の使用例
<ol class="dp-xml"><li class="alt"><span><span class="tag"><?</span><span class="tag-name">PHP</span><span> </span></span></li><li><span> function Test() </span></li><li class="alt"><span> { </span></li><li><span> static $</span><span class="attribute">w3sky</span><span> = </span><span class="attribute-value">0</span><span>; </span></li><li class="alt"><span> echo $w3sky; </span></li><li><span> $w3sky++; </span></li><li class="alt"><span> } </span></li><li><span> </span><span class="tag">?></span><span> </span></span></li></ol>
これで、Test() 関数を呼び出すたびに $w3sky の値が出力され、1 ずつ増加します。