laravel throw_if throw_unless
从Laravel 5.5开始引入了两个新的方法,throw_if throw_unless,这两个方法可以让你在抛出异常的时候,一行代码就实现。
先来看下这两个方法的实现
function throw_if($boolean, $exception, $message = '')
{
if ($boolean) {
throw (is_string($exception) ? new $exception($message) : $exception);
}
}
function throw_unless($boolean, $exception, $message)
{
if (! $boolean) {
throw (is_string($exception) ? new $exception($message) : $exception);
}
}
throw_if:当第一个参数为true的时候抛出异常。
throw_unless和throw_if正好相反,当第一个参数为false的时候抛出异常。
看一下以前的写法 :
if (!$res){
throw new Exception('订单保存失败', 32000);
}
现在你可以这样写:
$res = true;
throw_if($res, new Exception('订单保存失败'));
//or
throw_if($res, Exception::class, '订单保存失败');
$res = false;
throw_unless($res, new Exception('订单保存失败'));
//or
throw_unless($res, Exception::class, '订单保存失败');