我继承了很多以前的开发人员使用 PHP 的 is_numeric() 的代码,这给他们带来了麻烦。验证一个值是否为数字和验证一个值是否全部为数字之间存在很大差异。以下是验证两者的方法:
/* numeric, decimal passes */ function validate_numeric($variable) { return is_numeric($variable); } /* digits only, no dots */ function is_digits($element) { return !preg_match ("/[^0-9]/", $element); }
例如,客户编号不应有任何小数点,但使用 is_numeric() 会让小数值通过测试。不要成为这种人!