is_numeric,intval,ctype__digit ..你能依靠它们吗?
还是我必须使用正则表达式?
function isNum($str) {
return (preg_match("/^[0-9]+$/", $str));
}
你们有什么感想?我是傻瓜吗?
ctype_digit
和之间的一个重要区别is_numerict
是负值和浮点数.
is_numeric(-10)
将返回,true
而'ctype_digit(-10)'将是false
也ctype_digit(12.50)
将返回false
,而
is_numeric(12.50)
将true
所以它们都很方便,取决于你的域逻辑的上下文.
is_numeric,intval和ctype_digit都做了很多不同的事情.
is_numeric将告诉您变量的内容是否为数字(即如果它是浮点或整数值,则为true).
intval尝试将一串数字转换为整数值
ctype_digit将告诉您字符串是否只包含数字字符(将执行与isNum函数相同的检查).
最好的方法可能是检查is_numeric是否为真,然后使用settype($ myvalue,'integer')或intval($ myvalue)行的东西;