ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

一見して評価の順序がわかりずらかったプログラムの書き方

優先順位をちゃんと覚えていれば、わかる内容でした。
f:id:AJYA:20121004212715j:plain
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言語を学んだときからの癖になっています。