ID:               49019
 Updated by:       j...@php.net
 Reported By:      michaeldnelson dot mdn at gmail dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         Scripting Engine problem
 Operating System: freebsd
 PHP Version:      5.2.10
 New Comment:

= is associated on right, || is associated on left, so that's exactly 
what your code does.. 


Previous Comments:
------------------------------------------------------------------------

[2009-07-22 17:10:36] michaeldnelson dot mdn at gmail dot com

Description:
------------
It appears = has a higher precedence than || in some situations which
is contrary to the manual.  This exception is not noted as far as I can
tell.

var_dump(!$test = false || !$test2 = false);
is being interpreted like this
var_dump(!$test = (false || !$test2 = false));
instead of like this
var_dump((!$test = false) || (!$test2 = false));

If I missed something my apologies.

Thanks,
Michael D. Nelson

Reproduce code:
---------------
---
>From manual page: language.operators.precedence
---
var_dump(!$test = false || !$test2 = false);
echo "TEST\n";
var_dump($test);
echo "TEST2\n";
var_dump($test2);

Expected result:
----------------
bool(true)
TEST
bool(false)
TEST2
NULL

Actual result:
--------------
bool(false)
TEST
bool(true)
TEST2
bool(false)


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=49019&edit=1

Reply via email to