Странное переменное поведение - PullRequest
0 голосов
/ 11 октября 2011

Как это возможно?

$post_icon = $_REQUEST['icon'];
if($post_icon == 0)
     var_dump($post_icon);

Вывод:

string(15) "icon_smilie.gif"

Ничего не должно печататься, поскольку $post_icon не равно 0.

string(15) "icon_smilie.gif" это мой значок (выбранный радиовходом), но я не знаю почему, он проходит через значение 0.

В чем проблема?

1 Ответ

4 голосов
/ 11 октября 2011

При сравнении строка преобразуется в число, а именно: 0:

Если вы сравниваете число со строкой или сравнение включает числовые строки, то каждая строка преобразуется вчисло и сравнение выполнено численно.

и

Значение задается начальной частью строки.Если строка начинается с допустимых числовых данных, это будет используемое значение.В противном случае значение будет 0 (ноль).

Вместо этого используйте строгое сравнение ===.Также сравниваются значения типа .

См. Операторы сравнения и Таблицы сравнения типов PHP и Строки (внизу, строка преобразования в числа)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...