I have thought that too and shed some tears with it.
but, I think the or is returning the first true value.

can't test now (on linux machine), but what happens if you put it like:
$VAR1 = 0 | &40

or like:
$VAR1 = 1 | &40

just like and (&) checks if both are true...
 
_________________________
!

download KiXnet