(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