天天看点

php关于校验接收参数的简洁方式

条件1 && 条件2 && 报错处理(最多只能两个&&,否则会出现问题,还可a||b||c||d&&e)

!empty($title) && !Regular::checkCnEnNumStr($title) && Appreturn::errorReturn(ERR_PARAM_ERROR,'xxxx错误'); 

           

解说:

title可以为空(空直接不校验),但是非中文英文数字组合报错

当要校验是不是某些数字的时候,要如下

!empty($status)?$status_num=intval($status):$status_num=$status;
       !in_array($status_num, array(,)) && Appreturn::errorReturn(ERR_PARAM_ERROR,'XXXXX错误');
           

解说:

先将参数强制转化为数字(注意这里intval会将null转化为0),然后赋值给status_num(这里目的是避免字符串类型转化为int产生的错误),最后用in_array检查是否在里面。

可是还会出现一个问题,如果单纯!empty(status)&& status)&& status_num=intval($status);则会造成当status确实为空,status_num则没有初始化,被checkInt报语法错误,所以当无论空否都要赋值。

总结:

if{}else{}的替换方式:

1 a?b:c a正确执行b

2 a&&b&&c a,b逐个判断,是false的时候,跳出,直到c