我有以下形式的字符串:“37”,“42”,“7”。
我需要将它们转换为整数。我可以使用intval
。但我想检查字符串是否是预期的格式(我不是指预期的格式,例如,“abc”或“a7”)。如何在使用intval
之前或之后进行此操作?
据我所知intval
如果参数不是合适的格式,则返回1。如果是这种情况,则无法仅通过分析intval
的输出来检查参数是否为良好格式。
答案 0 :(得分:6)
答案 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,因此左手肯定是一个整数,然后检查无类型比较是否为真。