PHP:if(!$one==$two)不';你不总是工作吗?

PHP:if(!$one==$two)不';你不总是工作吗?,php,operators,operator-precedence,Php,Operators,Operator Precedence,是的,这只是一个我想得到答案的问题。我经历过几次,其中: 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)) 或 从那以后!运算符的优先

是的,这只是一个我想得到答案的问题。我经历过几次,其中:

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))

从那以后!运算符的优先级高于==运算符

另请参见:

您需要编写

if(!($one == $two))

从那以后!运算符的优先级高于==运算符


另请参见:

的值高于
=
,因此应使用括号:

if(!($one == $two))

的值高于
=
,因此应使用括号:

if(!($one == $two))
你需要

if(!($one == $two))
这是因为在没有括号的情况下,它会检查$1是否为false,然后检查$2是否=1。以下是唯一一次它在没有括号的情况下工作。计算为if(true==true)as$一=正确

$one = false;
$two = true;

if (!$one == $two)
{
    echo "different";
}
你需要

if(!($one == $two))
这是因为在没有括号的情况下,它会检查$1是否为false,然后检查$2是否=1。以下是唯一一次它在没有括号的情况下工作。计算为if(true==true)as$一=正确

$one = false;
$two = true;

if (!$one == $two)
{
    echo "different";
}