(Oops, got too happy with the ctrl+enter. Sorry Scott.)
> >
> > $a--&&do{do_something()};
> >
> > $a&&($a=0)||do{do_something()};
>
> These statements unconditionally alter $a (unless _I'm_ missing
> something). $a should only be set to 0/false iff $a is 1/true.
>
Well, if $a is false to begin with, what's the harm in
setting it false again? Unless you're using some kinda super
quantum trinary computer, in which case I can't help you. :)
Anyway, the second bit of code there will short-circut after
the first expression if $a is false, so everything after
"$a&&" won't get executed, leaving $a alone.
Patrick