Это если оператор срабатывает независимо от значений в условии, я заменил число для объяснения ради. Почему условие запускает выполнение независимо от того, является ли условие истинным или нет. Я пробовал каждый сценарий, но выполнение в операторе срабатывает каждый раз.
if(1 != 1 && 1 != 2 ){
execute code
exit();
}
вот точный код:
if($name1 != $winner && $name2 != $winner ){
echo " The player you chose as winner is not associated with match id: $match_id ";
exit();
}
Невозможно вернуть условие, указанное в сообщении true
,
Однако то, что вы говорите, может произойти, если вы напишите код, подобный приведенному ниже:
if(1 != 1 && 1 != 2 );{
echo 'case 1';
}
Обратите внимание ;
после if (). Вы уверены, что в вашем коде нет точки с запятой после if ()? Если вы ошибочно разместили ;
тогда оператор if оценивается как однострочный оператор, а код внутри блока if рассматривается интерпретатором как вне из условия if.
Редактировать на основе обновленного вопроса
Пожалуйста, проверьте следующее:
$winner
правильно установлен на любой из $name1
или же $name2
,$winner
Правильно — прошло уже некоторое время с тех пор, как я написал PHP, но, возможно, стоит обратить на это внимание.Кроме этого, я не вижу другой причины, по которой этот код должен вести себя так, как вы утверждаете.
Просто, может быть … Внимательно посмотрите на значения четырех переменных.
Сравнение с использованием! = Может дать некоторые неожиданные результаты.
Увидеть Вот а также Вот. РЕДАКТИРОВАТЬ: ссылки исправлены
Даже если это не решит эту проблему, лучше попытаться использовать! == везде, где это возможно.