intval()
当then值有前导零或是数学表达式时,有时会表现出有点违反直觉的行为。结果应该始终是safe, 但这并不总是你想要的expect.
一个简单的例子:
intval( \'9223372036854775808\' );
将永远不会返回此值,因为即使64位系统也无法处理如此大的数字。你得到
9223372036854775807
在64位系统上,以及
2147483647
在32位上。
但如果您使用:
preg_match( \'~\\d+~\', \'9223372036854775808\', $matches );
$matches[0]
将返回此数字不变。
因此,这取决于您期望的值。