条件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