Fwd: [PHP] Boolean type forced on string assignment inside if statement

From: Date: Thu, 03 Jan 2013 17:50:27 +0000
Subject: Fwd: [PHP] Boolean type forced on string assignment inside if statement
References: 1 2 3 4 5 6 7 8 9  Groups: php.general 
Request: Send a blank email to php-general+get-320015@lists.php.net to get a copy of this message
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@gmail.com> Date: 3 January 2013 12:42 Subject: Re: [PHP] Boolean type forced on string assignment inside if statement To: Marc Guay <marc.guay@gmail.com> 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@gmail.com>: >> 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 >

« previous php.general (#320015) next »