PHP: if (! $ One == $ two) не всегда работает? - PullRequest
1 голос
/ 19 сентября 2010

Да, это просто вопрос, на который я хотел бы получить ответ.Я испытал это пару раз, где это:

if(!$one == $two){ echo "Not the same"; }else{ echo "The same"; }

не будет работать, а

if($one == $two){ echo "The same"; }else{ echo "Not the same"; }

будет работать.

Почему это иногда не работает?Мне всегда нужно перекодировать как второй, когда первый не работает.

Ответы [ 3 ]

5 голосов
/ 19 сентября 2010

! имеет precedence выше, чем ==, поэтому вы должны использовать круглые скобки как:

if(!($one == $two))
5 голосов
/ 19 сентября 2010

Вам нужно написать

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

или

if($one != $two)

с момента!оператор имеет более высокий приоритет, чем оператор ==.

См. также: http://www.php.net/manual/en/language.operators.precedence.php

1 голос
/ 19 сентября 2010

Вам нужно

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

Это потому, что без скобок он проверяет, является ли $ one ложным, а затем проверяет, если $ two == $ one. Следующее - единственный раз, когда он будет работать без скобок. Оценка для if (true == true) как! $ One = true.

$one = false;
$two = true;

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