是的,这只是我想获得答案的一个问题。我经历过了几次,在此:
if(!$one == $two){ echo "Not the same"; }else{ echo "The same"; }
不会工作,
if($one == $two){ echo "The same"; }else{ echo "Not the same"; }
会工作。
为什么有时它不工作?当第一个不起作用时,我总是需要像第二个那样重新编码。
是的,这只是我想获得答案的一个问题。我经历过了几次,在此:
if(!$one == $two){ echo "Not the same"; }else{ echo "The same"; }
不会工作,
if($one == $two){ echo "The same"; }else{ echo "Not the same"; }
会工作。
为什么有时它不工作?当第一个不起作用时,我总是需要像第二个那样重新编码。
!
是具有较高precedence
比==
所以你应该使用括号:
if(!($one == $two))
你需要写
if(!($one == $two))
或
if($one != $two)
自
!运算符的优先级高于==运算符。
参见:http://www.php.net/manual/en/language.operators.precedence.php
你需要
if(!($one == $two))
这是因为如果没有括号,它正在检查$ one是否为假,然后检查$ two == $ one。以下是唯一一次没有括号的情况下工作。评估为if(true == true)as!$ one = true。
$one = false;
$two = true;
if (!$one == $two)
{
echo "different";
}