論理積演算子と比較演算子が併用された場合,左から右に向かって式が評価されます。演算子の種類による優先順位はありません。これは仕様です。たとえば
$boolean:=False
$text:="foo"
$result:=$text="" && $boolean=False
のようなコードを実行した場合,False
ではなくTrue
が返されます。
- 意図した式
$result:=(($t="") && ($b=False))
- 実際に評価された式
$result:=((($t="") && $b)=False)
左から右に向かって式が評価されるため,論理積演算ではなく,False=False
という比較演算になっている点に注目してください。こうしたエラーを避けるため,明示的ばカッコを記述することが勧められています。