当前位置:  开发笔记 > 编程语言 > 正文

is_numeric,intval,ctype__digit ..你能依靠它们吗?

如何解决《is_numeric,intval,ctype__digit..你能依靠它们吗?》经验,为你挑选了2个好方法。

is_numeric,intval,ctype__digit ..你能依靠它们吗?

还是我必须使用正则表达式?

function isNum($str) {
return (preg_match("/^[0-9]+$/", $str));
}

你们有什么感想?我是傻瓜吗?



1> mmrs151..:

ctype_digit和之间的一个重要区别is_numerict是负值和浮点数.

is_numeric(-10)将返回,true而'ctype_digit(-10)'将是false

ctype_digit(12.50)将返回false,而 is_numeric(12.50)true

所以它们都很方便,取决于你的域逻辑的上下文.


请注意,`ctype_digit(10)`也将是'false`,因为它只适用于字符串.你应该在进行验证之前强制转换为字符串:`ctype_digit((string)10)`返回`true`.

2> Kevin Loney..:

is_numeric,intval和ctype_digit都做了很多不同的事情.

is_numeric将告诉您变量的内容是否为数字(即如果它是浮点或整数值,则为true).

intval尝试将一串数字转换为整数值

ctype_digit将告诉您字符串是否只包含数字字符(将执行与isNum函数相同的检查).

最好的方法可能是检查is_numeric是否为真,然后使用settype($ myvalue,'integer')或intval($ myvalue)行的东西;

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有