PHP 「for構文」内で使用した「if構文」


またまた、失敗談です(笑)


先日、PHPスクリプトを作っていました。


『ファイルが存在する場合、処理を実行する。
これを10件繰り返す』


という様な感じの内容のスクリプトです。


構成としては

<?php
for構文(10件繰り返す){
 if構文(ファイルが存在する確認){
  処理①
 }
}
?>


という様な流れです。

で、ファイルが存在ていたかどうかを知りたかったので、

else(ファイルが存在しない場合の処理){
処理②
}


というのを加えたのです。

その処理②は
$result="ng";
というだけの処理です。

ファイルが存在している場合の処理①には
$result="ok";

というのを加えました。


処理①の内容は問題なく動くのですが、

$resultだけは、「ng」って出るんです。

でも処理①が動くって事は、
$result="ok";
の処理も動いているハズなんです。


その時はハマってしまい、全く分からなかったのですが、
実はもの凄い単純な内容でした。


for構文で
1件目〜9件目で処理①を行い
$result="ok";
を行っても、
結局10件目で、処理②、すなわち
$result="ng";
を行ってしまえば、上書きされてしまうんですよね。


POSTで送ったパラメータや、includeした変数、shuffleした数字などなど、
パラメータが多く、ファイルの行数も増えてしまっていたので、ハマってしまいました。

スクリプトはファイルを分けるなどして、簡潔に書いた方が良いですね。