| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > не так работает intval |
| Автор: begin 11.10.2007, 15:04 | ||
Сделал такую проверку данных на предмет того, что они являются числом:
Но почему то через это условие спокойно проходят и данные вида: "dfgjh", т.е. к числам не имеющие никакого отношения. Может лучше проверять по-другому? |
| Автор: Daevaorn 11.10.2007, 15:12 |
http://ru2.php.net/manual/ru/function.is-numeric.php |
| Автор: begin 11.10.2007, 15:25 |
| да, спасибо, насчет is_numeric уже дошло. но все же, почему не работает вариант с intval? ведь для текста она выдаст пустую строку, а она ведь не равна первоначальному тексту и условие не будет соблюдаться? |
| Автор: console 11.10.2007, 15:58 | ||
begin, потому что ==, пиши:
Добавлено через 52 секунды ))... опередили |
| Автор: MichaelMakarov 11.10.2007, 16:01 | ||||||
Не прокатит. Число 0 и строка "0" не равны. Т.е.
даёт false. |
| Автор: begin 11.10.2007, 16:20 |
| Я уже исправил весь код проверок с intval на is_numeric Теперь дошло по-настоящему. Последнее уточнение: если я проверяю в условии, является ли переменная числом, нужно ли потом, в дальнейшем коде, когда я буду использовать ее в запросах, приводить ее с помощью intval? Наверное нет, так как "не число" дальше проверки условия уже не попадет? |
| Автор: vasac 11.10.2007, 20:08 |
| Лучше не гадать, а приводить. Хуже не станет. Думаете, что знаете все ньюансы? А то, что is_numeric() спокойно пропустит "0x45" или "27.3e-3" учли? А лучше приводите сразу к числу без всяких проверок. |