Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: не могу понять почему удовлетворяет условию
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Помог: 21 раз(а)
//Вывожу перед для проверки
echo($id_product." + ".$id_property." + ".$value_param);
//ВЫВОДИТ: 1300 + 5 + вапвап
if($value_param=='' || $value_param==NULL || $value_param==0)
{
//ПОПАДАЕМ СЮДА
}
как так получается?
DelphinPRO
Отправлено: 14 Июля, 2014 - 19:52:28
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
потому что когда строка сравнивается с числом, она приводится к числу. любая строка, содержащая не цифровые символы будет приведена к нулю. Вот у вас и срабатывает последнее условие.
(Добавление)
привдение типов срабатывает при нестрогом сравнении (!=, ==). При строгом сравнении (!==, ===) будет учитываться также и тип данных.
----- Чем больше узнаю, тем больше я не знаю.
3d_killer
Отправлено: 14 Июля, 2014 - 20:04:11
Участник
Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011 Откуда: Ростов-на-Дону
Помог: 21 раз(а)
про empty забыл, благодарю
Мелкий
Отправлено: 14 Июля, 2014 - 20:05:32
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
DelphinPRO пишет:
любая строка, содержащая не цифровые символы будет приведена к нулю.
Уточню:
Если строка начинается с цифр - то будет интерпретирована как число до первого встретившегося нецифрового значения.
Если начинается не с цифры - то 0.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.