辅助函数新成员 throw_if & throw_unless ( Laravel 5.5 新功能早知道)
为了更容易抛出异常, Laravel 5.5 中新增了两个辅助函数:throw_if
和 throw_unless
。
TJ Miller 说,就跟其他辅助函数一样,throw_if 和 throw_unless 同样也能让代码显得更清晰更容易读懂,特别是这两个函数还能将条件块减少到一行。
接下来简单介绍下这两个函数以及它们的工作原理:
throw_if
顾名思义,即这个函数第一个传入的参数是布尔值,如果为 true
就抛出异常。
简单例子:
$foo = false;
throw_if($foo, new BarException('Foo is false'));
// or
throw_if($foo, BarException::class, 'Foo is False');
下面是这个函数实现的参考内容:
function throw_if($boolean, $exception, $message = '')
{
if ($boolean) {
throw (is_string($exception) ? new $exception($message) : $exception);
}
}
throw_unless
跟 throw_if
一样的使用方法,只不过它是判断当传入的第一个参数为 false
时,才会抛出异常。
$foo = true;
throw_unless($foo, new BarException('Foo is True'));
// or
throw_unless($foo, BarException::class, 'Foo is True');
看,几乎一样的实现方法:
function throw_unless($boolean, $exception, $message)
{
if (! $boolean) {
throw (is_string($exception) ? new $exception($message) : $exception);
}
}
这两个函数会在七月份推出的 Laravel 5.5 版本上发布~ 七月份哟!即下一个 LTS 的推出时间!
想更多更及时的知道 Laravel 的第一手资讯么?聪明的人都用上这个 插件 了呢!
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer
于 7年前 加精
腻害
厉害
我想到了thinkphp的E函数 :joy:
什么时候用这些函数优雅的抛异常?大家可以看这篇 教程:用 Laravel 拥抱异常 :smile:
问一下,这个字体是什么字体?
@328333982 OperatorMono
@JokerLinly 在哪下的,可以给个地址吗
@328333982 Google 一下吧 :joy: 另外 Windows 下使用这个字体可能会有问题,我也不知道为什么
你们是怎么打的表情的,是用手机回复的吗?
@想变强的菜鸡
@JokerLinly :heart:
@JokerLinly 我是mac 没找到下载地址,你的在哪下的?
@328333982 私信发你