2010-09-19 2 views
1

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

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

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

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

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

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

ответ

5

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

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

Вам нужно

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

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

$one = false; 
$two = true; 

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