今日のイラッとしたメモ

PHPで挙動調べるのにテキトーに書いたコードが思ったとおりに動かなかった件。
書いたコードは以下。

$param = $arg1 === false and $arg2 < 5 ? false: true;

三項演算子の評価結果がtrueになるのになんでかfalseが入っていて何だ?と思った。
正解は以下。

$param = ($arg1 === false and $arg2 < 5) ? false: true;

なんで型込みの比較演算子つなげると代入になんの?
意味がわからん。。。

ちなみにこれ書くなら以下がイイと思われ。

$param = !($arg1 === false and $arg2 < 5)