Проверка на целое число в php
Создадим универсальную функцию, которая будет проверять переменные на целые числа.
function isIntNumber($number){ if (!is_int($number) && !is_string($number)) return false; if (!preg_match("/^-?/(([1-9][0-9]*|0/))$/", $number)) return flase; return true; }
Конструкция следующая: передаём переменную функции, затем проверяем, не является ли она целым числом и строкой (числа могут передаваться и в строке):
if (!is_int($number) && !is_string($number)) return false;
Далее идёт регулярное выражение по проверки числа. В ней мы ищем совпадения.
В начале строки либо минус (с количеством повторений 0 или 1), либо ничего, для проверки на положительное и отрицательное число со знаком минус.
/^-?/
Затем проверки на сами числа, где первые числа от 1 - 9, а вторые и последующие от 0 до 9 (для исключение "05" и т.д.) или вместо всего этого у нас 0 (|0 - оператор альтернативы).
([1-9][0-9]*|0/)
Это и есть надёжная проверка на целые числа, к примеру им проверяют идентификаторы.
Комментарии