コードにシリアル化された IF ステートメントの長いリストを含めることは避けるべきですか? やむを得ないこともあるが、それは私の経験不足なのだろうか。
たとえば、ユーザーがアップロードした画像を処理していて、エラーについて正確なフィードバックを提供したい場合は、次のようになります。
if($file["size"] == 0) {
throw new Exception("ERROR: File was empty");
}
if (($file["type"] != "image/gif")
|| ($file["type"] != "image/jpeg")
|| ($file["type"] != "image/pjpeg")
|| ($file["type"] != "image/png")) {
throw new Exception("ERROR: Image must be either GIF, PNG or JPEG!");
}
if ($file["size"] > 2000000) {
throw new Exception("ERROR: Image must be than less 2MB!");
}
if ($file["error"] > 0) {
throw new Exception("UNKNOWN ERROR: ".$file['error']);
}
$imgDetails = getimagesize($file["tmp_name"]);
if($imgDetails['channels'] != 3){
throw new Exception("ERROR: Image must be RGB.)";
}
if($imgDetails['0'] < 50 && $imgDetails['1'] < 50) {
throw new Exception("ERROR: Image must be larger then 50 x 50.)";
}
etc. etc. etc. 最終的にファイルがすべてのテストに合格し、処理されるまで。
これは「悪い習慣」ですか?