PHP 相当于 JavaScript 的 parseInt 函数?

标签 php function digit

<分区>

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/

相关文章:

php - 无法使用 Apache 在 Laravel 中找到路线

c - 我的函数和主要方法有什么问题?

c - C语言中如何返回int值?

javascript - 正则表达式 : Phone number starting with 06 or 07

php - jQuery更新多个#divs,一个mysql_query

php - 从 PHP 缓存 header

PHP - 关联数组 : Changing keys for key value pair where value is a class object

function - Octave 函数未定义

python - string.isdigit() 语言环境如何以及为何依赖?

java - 特定子串的长度