&&和'和'在php中是一样的吗?
这个问题在这里已经有了答案:
它们不具有相同的优先级。 完全括号,您的代码是:
($keyWord = 2) and (3>4); // $keyWord = 2
$symbol = (2 && (3>4)); // $symbol = false
2
和false
显然是不一样的,因此'not-equal'
。
更多关于运营商优先权
那么,稍微改变一下代码就可以了:
<?php
$keyWord = 2 and 3>4;
$symbol = 2 && 3>4;
var_dump($keyWord);
var_dump($symbol);
?>
产生以下输出:
int(2) bool(false)
正如Kolink指出的那样,这是由于运营商的优先。
这里是逻辑运算符的优先级(表的一部分)
left && logical
left || logical
left ? : ternary
right = += -= *= /= .= %= &= |= ^= <<= >>= => assignment
left and
在你的情况下:
case 1:
$keyWord = 2 and 3>4;
($keyWord = 2) and (3>4);
这里$keyWord = 2
case 2:
$symbol = 2 && 3>4;
$symbol = (2 && (3>4));
这里$symbol = false
解决方案 : $keyWord = (2 and (3>4));
和$symbol = 2 && (3>4);
使用括号
参考:http://php.net/manual/en/language.operators.precedence.php
链接地址: http://www.djcxy.com/p/57607.html