我的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)
答案 0 :(得分: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
我发现针对这些情况打开了一个错误报告,不确定是否可以解决此问题,
答案 1 :(得分:0)
接受数字字符串的核心PHP语言的所有其他部分也是如此。这是一个令人烦恼的不一致,但这是有意的,并且已经有很多年了。我个人打算在将来的版本中修复此问题。