Содержание
(PHP 4, PHP 5, PHP 7)
is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число
Описание
Проверяет, является ли данная переменная числом. Строки, содержащие числа, состоят из необязательного знака, любого количества цифр, необязательной десятичной части и необязательной экспоненциальной части. Так, +0123.45e6 является верным числовым значением. Шестнадцатеричная (0xFF), двоичная (0b10100111001) и восьмеричная (0777) записи также допускаются, но только без знака, десятичной и экспоненциальной части.
Список параметров
Возвращаемые значения
Возвращает TRUE , если var является числом или строкой, содержащей число, в противном случае возвращается FALSE .
Примеры
Пример #1 Примеры использования is_numeric()
= array(
"42" ,
1337 ,
0x539 ,
02471 ,
0b10100111001 ,
1337e0 ,
"not numeric" ,
array(),
9.1
);
foreach ( $tests as $element ) <
if ( is_numeric ( $element )) <
echo "’ < $element >’ — число" , PHP_EOL ;
> else <
echo "’ < $element >’ — НЕ число" , PHP_EOL ;
>
>
?>
Результат выполнения данного примера:
Смотрите также
- ctype_digit() — Проверяет на наличие цифровых символов в строке
- is_bool() — Проверяет, является ли переменная булевой
- is_null() — Проверяет, является ли значение переменной равным NULL
- is_float() — Проверяет, является ли переменная числом с плавающей точкой
- is_int() — Проверяет, является ли переменная переменной целочисленного типа
- is_string() — Проверяет, является ли переменная строкой
- is_object() — Проверяет, является ли переменная объектом
- is_array() — Определяет, является ли переменная массивом
$post используется для моделирования $_POST и я обнаружил, что $_POST[‘int’] это строка
Как я могу сказать, $post[‘int’] такое целое число?
Следующее указывает, что это не целое число.
РЕДАКТИРОВАТЬ. По документации (http://php.net/manual/en/function.is-int.php ), is_int — Find whether the type of a variable is integer так что, очевидно, он делает именно то, что должен делать. Еще нужно сказать, является ли строка целым числом …
Решение
Если вы действительно хотите знать, является ли значение целым числом, вы можете использовать filter_input () . Важно: вы не можете проверить это с подделкой $_POST Вар, вы действительно должны опубликовать значение или использовать INPUT_GET для тестирования и добавления ?int=344 на ваш URL
Обновить:
Из-за комментария @ user1032531 ответ
Я бы подумал, что запеченное решение было бы доступно
Существует встроенная функция под названием filter_var () , эта функция делает то же самое, что и вышеприведенный пример, но ей не нужны POST или GET, вы можете просто передать ей значение или переменную:
Другие решения
Не думаю, что это сильное решение, но …
Ты можешь использовать is_numeric функция возвращает истину, если var является integer или же String Integer
Если вы хотите знать, является ли переменная integer и не string integer ты можешь использовать
Чтобы проверить, является ли переменная float ты можешь использовать is_float();
Вы должны использовать is_numeric()
Замечания:
Чтобы проверить, является ли переменная числом или числовой строкой (например,
Форма ввода (которая всегда является строкой), вы должны использовать is_numeric ().
В PHP, чтобы проверить является ли переменная целочисленным числом, есть функция is_int($var) , которая возвращает true — если является и false если нет.
Проверка is_int
Проверим несколько переменных функцией is_int($var) .
Если переменная является числом, то функция вернет ‘integer’ .
Этот способ не рекомендуется использовать.