ずっと特定の言語を使っていたら、それに慣れてしまってあまり細かいルールを気にしなくなるのですが、その考えが落とし穴になってしまったケース。
PJに参画してもらったJava使いの子にプログラム作らせたら無限ループを引き起こしました。
その記述は下記
for ($i = 0; i < count($value); $i++) {
※ forループの終了条件の変数に$iではなく、単に「i」という文字を指定
どうも変数に「$」をつける習慣になれないらしい。
何故これが無限ループになるかと言うと・・・下記参照
■[PHP] 0=="value is not zero!" @ nazonoDiary(日々うろおぼえ記)
つまりは・・・
for ($i = 0; 0 < 1; $i++) {
のように暗黙的に変換されてたため、無限ループになってしまう。
実験してみたければ
$a = "hoge"; $b = (int) $a; echo $b;
と書いて実行してみたらよい。
「0」が出力されます。
ただし、
$a = "10hoge"; $b = (int) $a; echo $b;
とかすると、「10」が返って来るからタチが悪い。
なぜかといわれれば、それがPHPの仕様ですとしかいいようがないのだけれど・・・。