[スレッド全体]

[6] Re:条件分岐としての && || 演算子 
2000/7/10 (Mon) 16:51:50 - あけび
&& || の代わりに and or を使う場合
例えば、
$a = $b || 1;
とすると、
$b が真である場合は $a には $b の値、
$b が偽であれば $a には 1 が代入されますが、
同じ感覚で
$a = $b or 1;
としても、$b の真偽にかかわらず $b の内容がそのまま
$a に代入されます。

これは、演算子の優先順位が
|| > = > or
であるためです。
同様に、and も = より優先順位が低いので

$a = 1 && 2;
では 1 && 2 が先に評価されるので $a の値は 2 になりますが、
$a = 1 and 2;
では $a = 1 が先に評価され、1 となります。

ちなみに、&& || と見た目の似ている & | 演算子というのもありますが、
こればビット演算子であって動作がまったく違うので、
条件分岐の代わりには使えません。
それどころか、1&2と1&&2等のように、真か偽かさえ違ってくる場合もあるので
ビット演算子を論理演算子と同じつもりで使うのは根本的に間違っています。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.84.01