$a = 2;
if ($a == ("1" or "3")) {
echo "GOOD";
} else {
echo "BAD";
}
При таком условии выводит "GOOD".. Не понятно почему. Что не так в условии? Тип переменной не влияет. Я проверил в значениях int и string, все равно условие некорректно. Поясните, где ошибка?
Рассмотрим if ($a == ("1" or "3")) по действиям:
("1" or "3") - две строки, интерпретатору задаётся вопрос: "1" или "2" есть true? Обе строчки непустые, каждая приравнивается кtrue.$a == true - переменная $a не пустая, в ней не 0, что при сравнении с bool преобразует таковое в trueБулев тип php
Таблица сравнения типов в PHP
Сборка персонального компьютера от Artline: умный выбор для современных пользователей