一見して評価の順序がわかりずらかったプログラムの書き方
優先順位をちゃんと覚えていれば、わかる内容でした。
photo credit: Kaptain Kobold via photopin cc
ある機能を移植するためにPHPのプログラムを確認したら、
if ($param1 < $param2 && $param3 == TRUE) { echo '1'; } else { echo '2'; }
と書かれている部分がありました。
先に比較演算子が評価され、その後論理演算子が評価されるのは、正しく動作していることからわかりますが、一見するとわかりずらいです。
PHP: 演算子の優先順位 - Manual
僕が同様のプログラムを書く場合は必ず、
if (($param1 < $param2) && ($param3 == TRUE)) { echo '1'; } else { echo '2'; }
と書いています。
こうしておけば、評価がどの順序で行われることを意図しているのか、間違えようがありません。
C言語を学んだときからの癖になっています。