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, '订单保存失败');