Возможный дубликат:
Почему PHP считает, что 0 равно строке?
У меня есть этот код:
$o['group'] = "prueba"; if( $o['group'] == 0){ die("test"); }
Почему он печатает тест? как возможно, что строка равна нулю?
если вы хотите, чтобы он точно соответствовал строке, попробуйте использовать точный тип трех равных знаков, например, так
if( $o['group'] === 0){
==
всегда будет оценивать значение true при сравнении строки с целым числом 0
'string' == 0 также оценивает значение true, потому что любая строка преобразуется в целое число по сравнению с целым числом. Если PHP не может правильно преобразовать строку, тогда он будет оцениваться как 0. Таким образом, 0 равно 0, что равно true.
Отсюда
Используйте оператор сравнения с проверкой типа «===». Посмотрите здесь пример http://php.net/manual/en/language.operators.comparison.php и объясните, почему нечисловая строка по сравнению с нулем всегда возвращает true
.