即将发布的 Laravel 5.5 中将带来两个新的辅助函数:throw_if 和 throw_unless,两者的目的都是为了简化抛出异常。

“就像其他辅助函数,throw_if 和 throw_unless 可以帮助我们快速开发简洁易懂的代码”,TJ Miller 说,“尤其是这两者可以把条件块代码简化为一行,非常的赞”。

我们来看一下这两个辅助函数,并演示一下如何使用它们:

throw_if

Throw if,就像它的名字一样,如果第一个参数是布尔值并且为 “true”,那么将会抛出一个异常。

这是一个使用示例:

$foo = true;

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 相反的是 throw_unless,它检查第一个参数,如果是 false,则抛出异常:

$foo = false;

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 版本中发布,预计发布时间为 7 月份。

php if throw,Laravel throw_if 和 throw_unless 辅助函数相关推荐

  1. laravel 5.5 的相关字符串辅助函数

    一.背景 最近在学习laravel 5.5的相关新特性,偶然间发现了几个不错的字符串辅助函数.分享给大家. 二.相关函数 1.Str::start() 辅助方法 如果字符串没有以给定值开头的话 str ...

  2. php辅助框架,【PHP开发框架】Laravel框架中辅助函数:optional ()函数的介绍

    laravel框架中的辅助函数有很多,那么,在 Laravel 新版本中又有什么非常好用的辅助函数呢?接下来的这篇文章中,ki4网将给大家介绍一个非常有用的辅助方法:optional()函数,这个函数 ...

  3. 引用http开头的JS失败以及laravel的url()方法的坑

    一.前言 昨天在发布新项目的时候,出现引用的jquery文件无法识别.android报错无法使用http开头的外部js文件.然后改为https开头的就可以了.紧接着,laravel中的ajax也都请求 ...

  4. Laravel 测试: PHPUnit 入门教程

    介绍 PHPUnit 测试的基础知识,使用基本的 PHPUnit 断言和 Laravel 测试助手. 介绍 PHPUnit 是最古老和最著名的 PHP 单元测试包之一.它主要用于单元测试,这意味着可以 ...

  5. Laravel框架一:原理机制篇

    转载自http://www.cnblogs.com/XiongMaoMengNan/p/6644892.html Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特点. ...

  6. laravel Helpers文件 通用帮助函数 以及常用帮助方法

    Laravel 提供了很多 辅助函数,有时候我们也需要创建自己的辅助函数. 我们把所有的『自定义辅助函数』存放于 app/Helpers/functions.php 文件中,这里需要新建一个空文件: ...

  7. PHP框架 - laravel

    一.依赖注入实现原理 依赖注入不是让对象创建一个依赖关系,也不是让工厂对象去创建对象,而是将所需的依赖变成一个外部对象,使之成为一个"某些人的问题",你为"某些人的问题& ...

  8. PHP随机字符串生成器

    我正在尝试在PHP中创建一个随机字符串,并且我对此绝对没有输出: <?phpfunction RandomString(){$characters = '0123456789abcdefghij ...

  9. 核心概念 —— 门面(Facades)

    1.简介 为应用的中的绑定类提供了一个"静态"接口. 内置了很多门面,你可能在不知道的情况下正在使用它们.Laravel 的门面作为中的底层类的"静态代理",相 ...

最新文章

  1. 20个!中国科协发布2020年重大科学问题和工程技术难题
  2. php xp不支持,据说PHP5.5发布 不再支持XP和2003
  3. vs2013+EF6+Mysql
  4. 【C】Natasha V1.3.6.0 的升级日志
  5. Ajax和Jsonp实践
  6. Ubuntu安装BackExec Remote Agent for Linux
  7. Python开发之--前端 HTML基础
  8. cesium获取模型实时坐标_Cesium 顶点着色器中求解模型坐标
  9. python判断图片相似度_Python比较两个图片相似度的方法
  10. 5 table滑动固定_淮南滑动管托固定管托
  11. Fortran入门教程(一)——引入篇
  12. 计算机硬件知识ppt课件,计算机硬件课件
  13. 深度linux如何安装迅雷,deepin官方论坛-深度科技官网旗下网站
  14. 大一java计算圆面积_Java练习题——计算圆的面积
  15. 以太坊2.0协议核心Beacon链详解
  16. 关于gb2312的编码
  17. 【论文阅读】Reviving Iterative Training with Mask Guidance for Interactive Segmentation
  18. Rust的审核团队突然宣布集体辞职
  19. flask中的可拨插视图
  20. 《ucore lab1 exercise5》实验报告

热门文章

  1. 又掐起来了!余承东称小米环幕屏手机无实用价值,卢伟冰回怼...
  2. 支付宝否认彭翼捷退出阿里系:在蚂蚁金服出任首席市场官
  3. realme进军中国 目标做行业主流手机品牌
  4. “锤死挣扎”的骁龙845+128GB旗舰机暴降1500元 仍冷清!
  5. 华为轮值董事长徐直军:5G不是原子弹 不伤害人
  6. 调起引用市场,引导用户进行评分
  7. 晨哥真有料丨宁缺毋滥会等来一个很好的人吗?
  8. Android常见的内存泄漏分析
  9. Android JNI(一)——NDK与JNI基础
  10. Linux驱动概念扫盲篇