PHPの範囲チェック
<?php $n = 19; $ok = true; $ok = $ok and is_numeric('a'); $ok = $ok and ($n < 1); $ok = $ok and isset($no_var); print(var_dump($ok)); ?>
は
bool(true)
になる。
<?php $n = 19; $ok = true; $ok = $ok && is_numeric('a'); $ok = $ok && ($n < 1); $ok = $ok && isset($no_var); print(var_dump($ok)); ?>
は
bool(false)
と意図したとおりの判定になる。
論理演算子(and)よりも代入演算子(=)の方が優先順が上であるためこうなるのだが、 PHPプログラマはこの結果に納得できているのかしら。