types — php: is_numeric по-разному обрабатывает начальные и конечные пробелы

Моя версия 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)

1

Решение

Эта функция обрабатывает начальные пробелы иначе, чем 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

Я нашел отчет об ошибке для этих случаев, не уверен, будут ли они работать над этим,

Сообщение об ошибке

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]