Re:Why 1 && 2 == 2
by cldr on Friday July 19, 2013 @12:06AM
(#6068272)
This is commonly seen in Perl and PHP with stuff like
[ Parent
| on HN ]
It's worth noting that in Perl the 'or' and 'and' operators are not equivalent to || and &&. For instance, they have super low operator precedence:
my $variable = 0 or 1;
Would result in $variable == 0 because it really looks like this: (my $variable = 0) or 1;
I allowed myself to get burned by this once because I didn't read the fine print. ^^;;Ugh, `or` is mostly useless in PHP.
That code is identical to:
launchMissiles() || die('failure');That code is the same, but or has a lower priority than ||, so they are not the same is the code before the or is an expression.
Also, using or instead or || for these types of things is more readable since it makes your intent of conditional code execution (as opposed to boolean evaluation) clear.
Meh, it's not more unreadable unless you have issues understanding || in the first place... and "or" is still a boolean operation.
Considering 99.9% of it's use in PHP is some variant of "connect() or die()", I stand by my statement. Besides, those "connect() or die()" expressions are widely considered bad-practice in the first place.