Проверка правильности записи числа в строке при помощи языка PHP.
Решение
Обратитесь к функции is_numeric():
if (is_numeric('five')) { /* false */ }
if (is_numeric(5)) { /* true */ }
if (is_numeric('5')) { /* true */ }
if (is_numeric(-5)) { /* true */ }
if (is_numeric('-5')) { /* true */ }
Обсуждение
Помимо работы с числами функция is_numeric() может также применяться к числовым строкам. Разница здесь в том, что целое число 5 и строка 5 в PHP с технической точки зрения не идентичны.(*)
Конечно, полезно, что функция is_numeric() правильно анализирует десятичные числа, такие как 5.1; однако числа с разделителем тысячного разряда, такие как 5,100, заставляют функцию is_numeric() вернуть false.
Для того чтобы убрать разделитель тысячного разряда из числа, перед функцией is_numeric() вызывается функция str_replace():
(*) Наиболее ярко это различие проявляется при переходе от PHP 3 к PHP 4. В PHP 3 empty('0') возвращала false, а в PHP 4 она возвращает true. С другой стороны, empty(0) всегда возвращала true и продолжает это делать. (В действительности для переменных, содержащих '0' и 0, следует вызывать empty().)
is_numeric(str_replace($number, ',', ''));
Для проверки числа на принадлежность к определенному типу существует множество связанных функций с именами, не требующими объяснений: is_bool(), is_float() (или is_double() или is_real(); все это одно и то же) и is_int() (или is_integer() или is_long()).
Комментарии:
Комментариев нет
|
|
|