天天看點

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