我尝试的所有基本 PHP 函数都返回了意外的结果。我只是想检查某个变量是否仅包含数字。例如:当我在公共场合发布我的脚本时,我不能要求用户只使用数字作为字符串或整数。对于这些情况,我编写了自己的函数来处理其他函数的所有不便之处,并且不依赖于正则表达式。有些人坚信正则函数会降低脚本的速度。
编写此函数的原因
1. is_numeric() 接受像 +0123.45e6 这样的值(但您期望它不会)
2. is_int() 不接受 HTML 表单字段(如:123),因为它们被视为字符串(如:"123")。
3. ctype_digit() 期望所有数字都是字符串(如:"123"),并且不验证真正的整数(如:123)。
4. 可能某些函数会将布尔值(如:true 或 false)解析为 0 或 1 并以这种方式进行验证。
我的函数仅接受数字,无论它们是字符串格式还是整数格式。
<?php
/**
* 检查输入是否仅包含数字
* @author Tim Boormans <[email protected]>
* @param $digit
* @return bool
*/
function is_digit($digit) {
if(is_int($digit)) {
return true;
} elseif(is_string($digit)) {
return ctype_digit($digit);
} else {
// 布尔值、浮点数和其他
return false;
}
}
?>