Search code examples
phpparsingcompiler-constructionoperators

PHP operator precedence bug?


The result of:

var_dump(null != $a = 15);
var_dump($a);

is:

bool(true)
int(15)

Why is this script not triggering an error? Since != (not equal operator) has a higher precedence than = (assignment operator), $a should be compared to null first?


Solution

  • The only reason I can find is that the documentation says that this is still legal: http://php.net/manual/en/language.operators.precedence.php#example-129

    It seems to be an exception to what is shown in the table above.