我尝试的所有基本 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;
}
}
?>