PHP:if(!$ one == $ two)总是不起作用?

时间:2010-09-19 12:56:22

标签: 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"; }

会奏效。

为什么有时不起作用?我总是需要像第二个那样重新编码,当第一个不起作用时。

3 个答案:

答案 0 :(得分:5)

你需要写

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

if($one != $two)
从那以后!运算符的优先级高于==运算符。

另请参阅:http://www.php.net/manual/en/language.operators.precedence.php

答案 1 :(得分:5)

!的{​​{3}}高于==所以你应该使用括号:

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

答案 2 :(得分:1)

你需要

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

这是因为没有括号,它检查$ 1是否为假,然后检查$ 2 == $ 1。以下是没有括号的唯一时间。评估if(true == true)为!$ one = true。

$one = false;
$two = true;

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