I received the message below addressed only to me, but I believe the group could benefit. It looks like the single pipe is a bitwise operator so you will get an integer as a result (and probably other weird things to discover when using it on non-numbers). http://php.net/manual/en/language.operators.bitwise.php ---------- Forwarded message ---------- From: Volmar Machado <qi.volmar@xxxxxxxxx> Date: 3 January 2013 12:42 Subject: Re: Boolean type forced on string assignment inside if statement To: Marc Guay <marc.guay@xxxxxxxxx> My results in a simple test: <?php $a = true; $b = false; // either null, or 0 echo ('($a | $b))' . ($a | $b) . '<br>'); //1 echo ('($a || $b))' . ($a || $b) . '<br>'); //1 echo ('($b | $a)' . ($b | $a) . '<br>'); //1 echo ('($b || $a)' . ($b || $a) . '<br>'); //1 echo ('($a | $a)'. ($a | $a) . '<br>'); //1 echo ('($a || $a)' . ($a || $a) . '<br>'); //1 echo ('($b | $b)' . ($b | $b) . '<br>'); //0 echo ('($b || $b)' . ($b || $b) . '<br>'); //false(outputs nothing) ?> 2013/1/3 Marc Guay <marc.guay@xxxxxxxxx>: >> Now, I am not sure as to where that would mean anything. Can anyone provide an example where using a single pipe would produce different results than using a double pipe? > > If PHP had "Eager operators" (thanks Wikipedia), then your first > example would have different output > > if (($a = 'foo') | ($b = 'bar')) > { > echo "$a <br > $b"; > } > else > { > echo 'Neither are populated'; > } > > Would spit out: > foo > bar > > rather than just > foo > > No? > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php