Моя версия php:
➜ ~ php -v
PHP 7.3.1 (cli) (built: Jan 10 2019 13:16:34) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.1, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.1, Copyright (c) 1999-2018, by Zend Technologies
Я не понимаю, почему разнесены значения в функции is_numeric
ведет себя так?
➜ ~ php -a
php > var_dump(is_numeric('0012432'));
bool(true)
php > var_dump(is_numeric(' 0012432'));
bool(true)
php > var_dump(is_numeric('0012432 '));
bool(false)
Эта функция обрабатывает начальные пробелы иначе, чем is_int (), is_float (), is_real (), is_long () и is_double ().
is_numeric(" 12345") = true
is_int(" 12345") = false
is_float(" 12345") = false
is_real(" 12345") = false
is_long(" 12345") = false
is_double(" 12345") = false
Я нашел отчет об ошибке для этих случаев, не уверен, будут ли они работать над этим,
Других решений пока нет …