Проблема со сравнением
Ребята, то ли я сошел с ума, то ли мировые законы поменялись.
Выражение
$val_int = 0;
$val = 'Текст';
if ($val_int == $val) {
echo 'цифра';
} else {
echo 'Текст';
}
дает в конце ответ - ЦИФРА. Почему???! |
$val = 'Текст'; echo (integer) $val; Вот почему. |
"В случае, если вы сравниваете число со строкой или две строки, содержащие числа, каждая строка будет преобразована в число, и сравниваться они будут как числа." (официальный manual)
При использовании == происходит преобразовании типов. Строка приводится к числу. Если в строке записано число например "10" то оно будет приведено к числу 10. В противном случаи любая строка будет нулем. |
squall88, спасибо, достаточно подробно описано.
|
| Часовой пояс GMT +3, время: 04:19. |