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した数字などなど、
パラメータが多く、ファイルの行数も増えてしまっていたので、ハマってしまいました。
スクリプトはファイルを分けるなどして、簡潔に書いた方が良いですね。