我正在尝试理解 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。