php 無限ループの回避策

2013/07/29

無限ループの回避策について。

想定外が起こらないような条件で、breakやreturnする。

無限ループに陥らないようにするのが基本だけど…想定外だってありうるんだよ。

$evasion = 0;
$num = 0;
while ($num < 9) {
  echo $num;
  $num = mt_rand(0, 10);

  $evasion++;
  if (10 < $evasion) {
    break;
  }
}

上記の場合だと、$numをランダムで決めて、9か10になったときのみループを抜ける。
無限ループとは違うけどいつ終わるか分からないループ。

万が一を考えて、10回で無理やりループを抜けている。
もちろん、$evasionの記述の抜けやミスがあればやっぱり無限になる。
コレを忘れたら意味ないけどね。

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。