Оценка строки PHP int (0)

78
10

Почему это выражение оценивается как true в PHP:

0 == " UNKNOWN" 

спросил(а) 2021-01-25T18:44:55+03:00 4 месяца, 4 недели назад
1
Решение
89

Поскольку строка принудительно привязана к int для сравнения, а значение int этой строки равно 0.

См. Http://php.net/manual/en/language.types.type-juggling.php

ответил(а) 2021-01-25T18:44:55+03:00 4 месяца, 4 недели назад
76

Вы выполняете свободное сравнение между двумя переменными; правила использования этого оператора описаны в таблице сравнения.

ответил(а) 2021-01-25T18:44:55+03:00 4 месяца, 4 недели назад
77

== будет приписывать одно из ваших значений в соответствии с другим.

(int)" UNKNOWN" возвращает 0

(int)0 возвращает 0

так

0==" UNKNOWN" true

ответил(а) 2021-01-25T18:44:55+03:00 4 месяца, 4 недели назад
45

$string == " UNKNOWN";
var_dump((int)$string); //gives 0

поэтому он оценивает значение true.

ответил(а) 2021-01-25T18:44:55+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема