ホームページ  >  記事  >  バックエンド開発  >  PHP 静的変数のサンプル コードのデモ static_PHP チュートリアル

PHP 静的変数のサンプル コードのデモ static_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:30:31782ブラウズ

この関数は、呼び出されるたびに $w3sky の値を 0 に設定し、「0」を出力するため、 ではほとんど役に立ちません。この関数が終了すると変数 $w3sky は存在しないため、変数 $w3sky++ を 1 つ増やしても効果はありません。このカウント値を失わないカウント関数を作成するには、変数 $w3sky を静的として定義します:

PHP 静的変数 static を使用した例

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?PHP  </span></span></span></li>
<li><span>function Test(){  </span></li>
<li class="alt">
<span>static $</span><span class="attribute">w3sky</span><span> = </span><span class="attribute-value">0</span><span>;  </span>
</li>
<li><span>echo $w3sky;  </span></li>
<li class="alt"><span>$w3sky++;  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li>
</ol>

これで、Test() 関数が呼び出されるたびに、$w3sky が出力値になります。そして1つ追加します。

静的変数は、再帰関数を処理する方法も提供します。再帰関数は、それ自体を呼び出す関数です。再帰関数を作成するときは、無限に再帰する可能性があるので注意してください。再帰を終了する適切な方法があることを確認する必要があります。静的変数 $count を使用して再帰的に 10 までカウントし、いつ停止するかを決定するこの単純な関数について考えてみましょう:

PHP 静的変数の静的関数と再帰関数の例

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?PHP  </span></span></span></li>
<li><span>function Test(){  </span></li>
<li class="alt">
<span>static $</span><span class="attribute">count</span><span> = </span><span class="attribute-value">0</span><span>;  </span>
</li>
<li><span>$count++;  </span></li>
<li class="alt"><span>echo $count;  </span></li>
<li>
<span>if ($count </span><span class="tag"><span> </span><span class="tag-name">10</span><span>) {  </span></span>
</li>
<li class="alt"><span>Test();  </span></li>
<li><span>}  </span></li>
<li class="alt"><span>$count--;  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li>
</ol>

注: 静的変数は例のように宣言できます。その上。これを宣言内の式の結果に代入すると、解析エラーが発生します。

例 PHP 静的変数 static を宣言する

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?PHP  </span></span></span></li>
<li><span>function foo(){  </span></li>
<li class="alt">
<span>static $</span><span class="attribute">int</span><span> = </span><span class="attribute-value">0</span><span>;// correct  </span>
</li>
<li>
<span>static $</span><span class="attribute">int</span><span> = </span><span class="attribute-value">1</span><span>+2; // wrong (as it is an expression_r_r)  </span>
</li>
<li class="alt">
<span>static $</span><span class="attribute">int</span><span> = </span><span class="attribute-value">sqrt</span><span>(121); // wrong (as it is an expression_r_r too)  </span>
</li>
<li><span>$int++;  </span></li>
<li class="alt"><span>echo $int;  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li>
</ol>


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446285.html技術記事各呼び出しで $w3sky の値が 0 に設定され、「0」が出力されるため、この関数はほとんど役に立ちません。変数に 1 を追加する $w3sky++ は効果がありません。この関数が終了すると、変数...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。