MW211 EXIT

devlog
設計/複数条件の順番
2014年08月06日
「if (条件1 and 条件2)」や「if (条件1 or 条件2)」のように
複数の条件を組み合わせて条件式の場合、
論理的には「条件1」と「条件2」の順番を入れ替えても問題ないことになるが
(「どっちも」もしくは「どっちか」ってことだから)
プログラムの場合は前から順番に処理をおこなっていくということに留意すべき。

つまり「条件1」が「条件2を判定しても問題ない」という条件の場合
「if (条件2を判定しても問題ない and 条件2)」となるが
これは順番を入れ替えたらエラーとなるわけだ。

つまりAND条件の場合、「条件1」が「偽」の時点で
「条件2」へは進まない(で「偽」と結論づける)。
一方OR条件の場合、「条件1」が「真」の時点で
「条件2」へは進まない(で「真」と結論づける)ということになる。

だから「if (isset($a) && ($a == 1))」のような条件式で
「$a」が定義されていなくても問題なく動くということになる。
順番無視だったら、「$a == 1」を先に処理して未定義エラーに
なってしまう可能性もあるってことになる。
分類:設計