小编Bra*_*ley的帖子

为什么 is_numeric() 在传递看似数字的字符串时返回 false?

我正在尝试理解 PHP 中的数字字符串。我有以下代码:

var_dump(5 * "10 abc");
var_dump(is_numeric("10 abc"));
Run Code Online (Sandbox Code Playgroud)

这给了我输出:

int(50)
bool(false)
Run Code Online (Sandbox Code Playgroud)

这让我感到困惑,因为字符串“10 abc”似乎被解释为第一个表达式中的数字字符串(因此 int(50) 输出并且没有关于使用非数字值的警告),但是当通过 is_numeric() 运行时函数它返回 false,表明它实际上不是数字字符串。

我花了一些时间查看文档来理解这种行为,但找不到任何具体的答案,有人可以帮助解释是什么导致了这种行为吗?

我知道 PHP 8.0.0 对数字字符串的含义进行了一些更改,但这是我现在正在尝试理解的 PHP 7.1.33。

php string numeric isnumeric

1
推荐指数
1
解决办法
1034
查看次数

标签 统计

isnumeric ×1

numeric ×1

php ×1

string ×1