php:is_numeric对前导空格和尾随空格的处理方式不同吗
我的php版本:php:is_numeric对前导空格和尾随空格的处理方式不同吗,php,types,type-conversion,php-7.3,Php,Types,Type Conversion,Php 7.3,我的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
➜ ~ 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
我不明白为什么函数中的间隔值是数字的行为是这样的
➜ ~ 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()
我发现这些案例有一个bug报告,不确定他们是否会处理这个问题
接受数字字符串的核心PHP语言的其他部分也是如此。这是一个令人恼火的矛盾,但它是故意的,多年来一直如此。我个人打算在将来的版本中修复此问题。5年前的错误报告,没有评论。另外,你可以对这个bug投票,也许他们会评论/关闭/修复等等。我找到了拉请求,但去年作者决定关闭它。他写道:等了6个月,这位3岁的公关才开始行动,我很有信心这不会有任何进展,所以我要结束公关。谢谢,@abestard。我在这个bug报告中写了评论。很高兴看到这个功能在移动,这是RFC的一部分吗?出于性能方面的考虑,我认为Nikita提出了一个PHP内部讨论。它将成为以下内容的一部分吗?我喜欢跟踪这些更改,以便以后简化代码。谢谢@abestrad,在草稿中,我打算尽快完成它
is_numeric(" 12345") = true
is_int(" 12345") = false
is_float(" 12345") = false
is_real(" 12345") = false
is_long(" 12345") = false
is_double(" 12345") = false