传入参数一般需要验证的项目和过程如下
1,判断 isset($paremeter),目的:检查有没有传$paremeter。
2,empty(),目的:检查是否为空。
此处要注意的是:empty(0) 返回值为真。如果需要对0特特殊处理需要小心。
3,如果是数值类型,则要用 ctype_digit() 或is_numeric()判断是否为数值型。而不能使用 is_int()、is_float()等来判断,因为接收$_GET[]或$_POST[]传入的参数都是string类型,比如:url=http://domain/api.json?id=123
$id = $_GET["id"];
$id值为字符串“123”,用is_int($id)判断结果则为假。
ctype_digit()与is_numeric()区别:
$a = "123";
$b = "-123";
$c = "1.23";
var_dump(ctype_digit($a)); echo "<br/>";
var_dump(ctype_digit($b)); echo "<br/>";
var_dump(ctype_digit($c)); echo "<br/>";
var_dump(is_numeric($a)); echo "<br/>";
var_dump(is_numeric($b)); echo "<br/>";
var_dump(is_numeric($c)); echo "<br/>";
返回结果:
bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
4,字符串类型参数验证是否为空时 用
if($str == "")
验证,而不能用
if(empty($str))
以免造成"0"判断失误的bug