辅助函数新成员 throw_if & throw_unless ( Laravel 5.5 新功能早知道)

file

为了更容易抛出异常, Laravel 5.5 中新增了两个辅助函数:throw_ifthrow_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 的第一手资讯么?聪明的人都用上这个 插件 了呢!

参考链接:https://laravel-news.com/throw_if-throw_un...

本作品采用《CC 协议》,转载必须注明作者和本文链接
Stay Hungry, Stay Foolish.
本帖由 Summer 于 6年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 13
Destiny

腻害

6年前 评论

我想到了thinkphp的E函数 :joy:

6年前 评论

什么时候用这些函数优雅的抛异常?大家可以看这篇 教程:用 Laravel 拥抱异常 :smile:

6年前 评论

问一下,这个字体是什么字体?

6年前 评论

@JokerLinly 在哪下的,可以给个地址吗

6年前 评论

@328333982 Google 一下吧 :joy: 另外 Windows 下使用这个字体可能会有问题,我也不知道为什么

6年前 评论

你们是怎么打的表情的,是用手机回复的吗?

6年前 评论

@JokerLinly 我是mac 没找到下载地址,你的在哪下的?

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!