kruglov нет, преобразование "3" в целочисленное 3 это нормально. И вот чем это отличается / почему это нормально:
- значения, передаваемые через GET или POST являются строковыми. Т.е. тот же сделанный в в форме выбор значения 3 из выпадающего списка (selectа) придет в виде "3".
- преобразование "3" в 3 не изменяет пользовательского ввода или выбора, а преобразование "3 это строка" в 3 откусывает часть полученных данных.
- оценка, является ли значение числовым
PHP:
var_dump(is_numeric("3 is a string")) -> false
var_dump(is_numeric("3")) -> true
для "3 is a string" и "3" различна
-~{}~ 13.04.07 15:18:
kruglov
уупс... не обратил внимание на "пробел". Где нажал? Как нажал? если мы говорим о пользовательском вводе в текстовое поле, то, прости, мы сейчас войдем в дискуссию о проверках пользовательского ввода.
ок. Если мы ожидаем от пользователя ввода числа, то логично применить к полученным данным [m]trim[/m] и посмотреть, получили ли мы числовые данные тем же самым [m]is_numeric[/m], фактически мы можем сразу выполнять проверку
и при успехе - выполнять преобразование типа.
но я очень сильно боюсь того, как бы умолчательно превращая "3 раза по 3" в число 3, мы не ошиблись: вдруг пользователь имел ввиду 9??? А вот если он ввел " 3 ", "+3" или " +3 " то оснований предполагать, что речь идет о 3 мне кажется больше.
-~{}~ 13.04.07 15:23:
и, к слову, ожидая от пользователя ввода действительных чисел их приходится преобразовывать, потому что
PHP:
var_dump((float)"3,2"); -> float(3)
var_dump((float)"3.2"); -> float(3.2)
а казалось бы, так естественно поставить запятую, для отделения дробной части