Подтвердить что ты не робот

Сравнение строк php с 0 integer возвращает true?

Возможный дубликат:
Почему PHP считает 0 равным строке?

У меня есть эта часть кода:

$o['group'] = "prueba";
if( $o['group'] == 0){
    die("test");
}

Почему он печатает тест? как может быть возможно, что строка равна нулю?

4b9b3361

Ответ 1

если вы хотите, чтобы он точно соответствовал строке, попробуйте использовать точный символ трех одинаковых знаков, например, if( $o['group'] === 0){
== всегда будет оценивать значение true при сравнении строки с целым числом 0

'строка' == 0 также оценивает значение true, потому что любая строка преобразуется в целое число по сравнению с целым числом. Если PHP не может правильно преобразовать строку, тогда он оценивается как 0. Таким образом, 0 равно 0, что равно true.

От здесь

Ответ 2

Используйте оператор сравнения с проверкой типа "===". Посмотрите здесь пример http://php.net/manual/en/language.operators.comparison.php и объясните, почему нечисловая строка по сравнению с нулем всегда возвращает true.