serg_small_developer
@serg_small_developer
Начинающий прогер

Почему не срабатывает сравнение «НЕ»?

Всем привет. Стыдно просить помощи но все же по такому элементарному вопросу),
есть вот такое сравнение
if( intval($a1) !== 14 || intval($a1) !== 12 ){
	echo ' равно <br>';
} else {
	echo ' no равно <br>';
}

в переменную $a1 приходят разные числа и мне нужно если это будет 14 или 12 исключить его, думаю и так понятно из кода), но проблема следующая это выражение не работает(
Типы проверил все одинаковое, но это сравнение на выходе показывает всегда только true, и при 12 и при 14 и при любом другом числе. Почему так происходит никак не пойму, если убрать знак "НЕ" т.е. "!" то все работает проходят только 12 и 14, но мне же нужно исключить их.
Пробовал уже все что нашёл и даже вместо || писал xor так как оба сразу не могут быть true, и так же пробовал так сравнивать !=, все равно не срабатывает(

Помогите пожалуйста кто знает в чем может быть причина)
  • Вопрос задан
  • 166 просмотров
Решения вопроса 3
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
$a1 = (int) $a1;
if( $a1 === 14 || $a1 === 12 ){
  echo 'пришло 14 или 12<br>';
} else {
  echo 'пришло что то другое<br>';
}
Ответ написан
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
Либо
...
if( intval($a1) == 14 || intval($a1) == 12 ){
...

либо
...
if( intval($a1) !== 14 && intval($a1) !== 12 ){
...


А так у вас тождественное равенство написано, которое true в любом случае
Ответ написан
0xD34F
@0xD34F
Не равно одному значению или не равно другому? Действительно - быть равным и 12 и 14 одновременно как-то затруднительно.

Наверное, надо как-то так:

if (intval($a1) === 14 || intval($a1) === 12) {
  echo ' равно <br>';
} else {
  echo ' no равно <br>';
}

Или так:

if (intval($a1) !== 14 && intval($a1) !== 12) {
  echo ' no равно <br>';
} else {
  echo ' равно <br>';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы