Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Проблема со сравнением (https://javascript.ru/forum/server/36376-problema-so-sravneniem.html)

posta 13.03.2013 16:16

Проблема со сравнением
 
Ребята, то ли я сошел с ума, то ли мировые законы поменялись.
Выражение
$val_int = 0;
$val = 'Текст';
if ($val_int == $val) {
	echo 'цифра';
} else {
	echo 'Текст';
}


дает в конце ответ - ЦИФРА.

Почему???!

danik.js 13.03.2013 18:45

$val = 'Текст';
echo (integer) $val;

Вот почему.

squall88 13.03.2013 18:46

"В случае, если вы сравниваете число со строкой или две строки, содержащие числа, каждая строка будет преобразована в число, и сравниваться они будут как числа." (официальный manual)
При использовании == происходит преобразовании типов. Строка приводится к числу. Если в строке записано число например "10" то оно будет приведено к числу 10. В противном случаи любая строка будет нулем.

posta 13.03.2013 21:03

squall88, спасибо, достаточно подробно описано.


Часовой пояс GMT +3, время: 22:29.