在正常情况,我们会通过,if,else进行判断一个接口的条件是否满足,不满足则输出错误,例如
在IM系统中,申请入群接口,需要以下判断:
$param = $this->request()->getRequestParam...else,return,writeJson等重复代码.那么,有没有一个办法,进行if,else等封装,直接一行代码实现 判断+输出错误呢?...在此示例中,可以看出,断言的作用在于确保程序的正常执行,如果出错则代表程序有问题,需要修bug
业务断言
我们可以通过断言(确保其条件正确,使得程序往下执行)的说法,在业务中封装:
function ...$userInfo,'你已经是本群成员');
在此时,我们已经将我们的判断代码,优化成了一行,在assert函数中,会将不符合预期的数据,通过异常抛出,我们需要通过拦截异常,来实现输出前端需要的数据格式...$userInfo,'你已经是本群成员');
}catch (\Throwable $throwable){
//拦截抛出的异常,然后直接输出json 错误消息
$this->writeJson