如果字符串可以转换为整数,如何检入PHP?

时间:2011-08-02 16:25:13

标签: php string integer

我有以下形式的字符串:“37”,“42”,“7”。

我需要将它们转换为整数。我可以使用intval。但我想检查字符串是否是预期的格式(我不是指预期的格式,例如,“abc”或“a7”)。如何在使用intval之前或之后进行此操作?

据我所知intval如果参数不是合适的格式,则返回1。如果是这种情况,则无法仅通过分析intval的输出来检查参数是否为良好格式。

6 个答案:

答案 0 :(得分:6)

您可以使用

ctype_digit()

http://ro2.php.net/ctype_digit

答案 1 :(得分:3)

您可能正在寻找filter_var

$input = '5';
filter_var($input, FILTER_VALIDATE_INT); // returns 5
$input = 'asdf';
filter_var($input, FILTER_VALIDATE_INT); // returns false

您还可以将许多其他选项传递给此功能。我认为它被设计为一种验证表单提交的方式。

答案 2 :(得分:1)

ctype_digit($ x)&& ($ x == floor($ x))

答案 3 :(得分:0)

您可以使用is_numeric()功能。如果是数字,它应该返回true,如果混合中有字母,则返回false。

答案 4 :(得分:0)

平庸的解决方案,但你可以这样做:

preg_match('/^[0-9]*$/', $value)

答案 5 :(得分:-2)

(int)$ value == $ value怎么样?

这会将值转换为int,因此左手肯定是一个整数,然后检查无类型比较是否为真。