Проверка на целое число в php

Создадим универсальную функцию, которая будет проверять переменные на целые числа.

function isIntNumber($number){
    if (!is_int($number) && !is_string($number)) return false;
    if (!preg_match("/^-?(?:[1-9]\\d*)$/", $number)) return false;
    return true;
}

Конструкция следующая: передаём переменную функции, затем проверяем, не является ли она целым числом и строкой (числа могут передаваться и в строке):

if (!is_int($number) && !is_string($number)) return false;

Далее идёт регулярное выражение по проверки числа. В ней мы ищем совпадения.

В начале строки либо минус (с количеством повторений 0 или 1), либо ничего, для проверки на положительное и отрицательное число со знаком минус.

^-?

Затем проверки на сами числа, где первые числа от 1 — 9, а вторые и последующие от 0 до 9 (для исключение «05» и т.д.) или вместо всего этого у нас 0 (|0 — оператор альтернативы).

(?:[1-9]\d*)$

Это и есть надёжная проверка на целые числа, к примеру им проверяют идентификаторы.


Взято с Daruse и переписано

Прокрутить вверх