<?php $a = 0; for($i=0;$i<5;$i++){ func(); } function func(){ global $a; $b = 0; static $c = 0; print "変数$aは{$a}、変数$bは{$b}、変数$cは{$c}です<br>"; $a++; $b++; $c++; } ?>
<実行結果>
変数0、変数0、変数0です
変数1、変数0、変数1です
変数2、変数0、変数2です
変数3、変数0、変数3です
変数4、変数0、変数4です
となります。$a,$bはわかるのですが$cはなぜこうなるのでしょうか?
staticをつけるとグローバル変数と同じ記憶寿命を持ち関数が終了しても記憶寿命が持つというのはわかるのですが、毎回$c =0;がある以上毎回、変数$cは{$c}の結果は0になってしまう気がするのですがなぜそうならないのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/14 02:54