<分区>
Possible Duplicate:
Check if a variable is a natural number
刚刚遇到我需要用 PHP 清理输入并删除所有非数字字符的地方。想自己做一个函数,但首先想检查一下可能的内置函数,这样我就不必花额外的时间重新发明轮子。
<分区>
Possible Duplicate:
Check if a variable is a natural number
刚刚遇到我需要用 PHP 清理输入并删除所有非数字字符的地方。想自己做一个函数,但首先想检查一下可能的内置函数,这样我就不必花额外的时间重新发明轮子。
最佳答案
在 PHP 中没有直接等同于 pareseInt()
的方法,因为 PHP 没有 NaN
数据类型。如果无法解析值,parseInt()
将生成 NaN
。
此外,parseInt()
具有 radix 参数,PHP 选项均未提供该参数。
但是话虽如此,如果您只想将字符串转换为整数,那么有几种选择:
$int = (int)$string;
$int = intval($string);
$int = settype($string,'integer');
这三者的工作方式大致相同。可能存在一些边缘情况,其中 intval()
与其他两个不同,但一般来说,它们会将字符串转换为 int。在没有 NaN
的情况下,如果字符串不是数字且无法解析,它们都会输出 0
(零)。但这对于大多数数据库卫生目的来说应该足够了。
如果您确实想要在错误时返回 NaN
,最接近的结果是 null
。您可以使用 filter_var()
获取此信息:
$value = filter_var(FALSE, FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
如果您只想检查字符串是否为数字,is_numeric()
函数可以做到这一点:
$bool = is_numeric($string);
但是,它对小数和科学记数法返回 true,因此在大多数情况下可能并不完美。一个更好的选择是 ctype_digit()
如果字符串仅由数字组成则返回 true:
$bool = ctype_digit($string);
如果这些都不适合,总有正则表达式选项,使用 preg_match()
或 preg_replace()
,但这些对于这种情况来说绝对是矫枉过正.
关于PHP 相当于 JavaScript 的 parseInt 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12650802/