is_numeric()
проверяет, является ли значение числом.Это не обязательно должно быть целое число - это может быть десятичное число или число в научной нотации.
Приведенный вами пример preg_match()
проверяет только то, что значение содержит цифры от нуля до девяти;любое количество из них и в любой последовательности.
Обратите внимание, что заданное вами регулярное выражение также не является идеальным средством проверки целых чисел, как вы его написали.Это не учитывает негативов;он допускает строку нулевой длины (т. е. без цифр вообще, что, по-видимому, не должно быть действительным?), и позволяет номеру иметь любое число ведущих нулей, что опять-таки может не быть предназначенным.
[EDIT]
Согласно вашему комментарию, более правильное регулярное выражение может выглядеть следующим образом:
/^[1-9][0-9]*$/
Это заставляет первую цифру быть только между 1 и 9, поэтомуВы не можете иметь ведущие нули.Это также заставляет его иметь длину не менее одной цифры, поэтому решает проблему с нулевой длиной строки.
Вы не беспокоитесь о негативах, так что это не проблема.
Возможно, вы захотитеограничить количество цифр, потому что при существующем состоянии это позволит слишком большим строкам храниться в виде целых чисел.Чтобы ограничить это, вы должны изменить звезду на ограничение длины следующим образом:
/^[1-9][0-9]{0,15}$/
Это позволит длине строки от 1 до 16 цифр (т.е. первая цифра плюс 0-15 дополнительных цифр),Не стесняйтесь корректировать числа в фигурных скобках в соответствии с вашими потребностями.Если вам нужна строка фиксированной длины, вам нужно указать только одно число в фигурных скобках.
Надеюсь, это поможет.