Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php:is_numeric对前导空格和尾随空格的处理方式不同吗_Php_Types_Type Conversion_Php 7.3 - Fatal编程技术网

php:is_numeric对前导空格和尾随空格的处理方式不同吗

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版本:

➜  ~ 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