assert()函数其实是一个断言函数。

那么什么是断言呢?百度百科上是这么说的:编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。说到这里,大家应该能知道assert()函数是干嘛用的了吧?好,接下来我们看一下PHP官方文档是怎么解释的:
assert — 检查一个断言是否为 FALSE

PHP 

assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的行动。

如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。 assertion 是字符串的优势是当禁用断言时它的开销会更小,并且在断言失败时消息会包含 assertion 表达式。 这意味着如果你传入了 boolean 的条件作为 assertion,这个条件将不会显示为断言函数的参数;在调用你定义的 assert_options() 处理函数时,条件会转换为字符串,而布尔值 FALSE 会被转换成空字符串。

断言这个功能应该只被用来调试。 你应该用于完整性检查时测试条件是否始终应该为 TRUE,来指示某些程序错误,或者检查具体功能的存在(类似扩展函数或特定的系统限制和功能)。

断言不应该用于普通运行时操作,类似输入参数的检查。 作为一个经验法则,在断言禁用时你的代码也应该能够正确地运行。

assert() 的行为可以通过 assert_options() 来配置,或者手册页面上描述的 .ini 设置。

assert_options() ASSERT_CALLBACK 配置指令允许设置回调函数来处理失败的断言。

assert() 回调函数在构建自动测试套件的时候尤其有用,因为它们允许你简易地捕获传入断言的代码,并包含断言的位置信息。 当信息能够被其他方法捕获,使用断言可以让它更快更方便!

回调函数应该接受三个参数。 第一个参数包括了断言失败所在的文件。 第二个参数包含了断言失败所在的行号,第三个参数包含了失败的表达式(如有任意 — 字面值例如 1 或者 "two" 将不会传递到这个参数)。 PHP 5.4.8 及更高版本的用户也可以提供第四个可选参数,如果设置了,用于将 description 指定到 assert()。

相比于Python等其他语言来讲,PHP的assert()函数显得更加复杂。而在一般的开发中,当然,这是由于我没有写过单元测试,我是比较习惯于用if()else{}来进行布尔值判断,或者是使用var_dump来打印调试。所以基本很少使用assert()这个断言函数。尤其是因为既然它一般不推荐出现在生产模式下,那么开发完后的删除操作显得尤为重要,不经意的就耗费了很多时间。

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要请戳这里链接 或者关注咱们下面的专栏

PHP大神进阶​zhuanlan.zhihu.com

assert函数_PHP 之 assert()函数相关推荐

  1. php次方函数_PHP数学运算函数大汇总(经典值得收藏)_PHP

    本文汇总分析了PHP数学运算函数.分享给大家供大家参考,具体如下: 一.常用函数说明: Abs: 取得绝对值. Acos: 取得反余弦值. Asin: 取得反正弦值. Atan: 取得反正切值. At ...

  2. php mail函数_PHP发送电子邮件函数mail详解

    重要:本文最后更新于2019-10-09 08:49:07,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. PHP作为一门使用广泛的脚本语言,经过这么多年发展已经非常完善了,发送电子 ...

  3. php mysql 操作函数_PHP操作mysql函数详解,mysql和php交互函数

    1. 建立和关闭连接1) mysql_connect() resource mysql_connect([string hostname [:port][:/path/to/socket][,stri ...

  4. php 时间加法函数_PHP 日期时间函数的高级应用技巧

    PHP 日期时间函数常用函数高级使用技巧,大家在以后的开发中能用的到. PHP的日期时间函数date() 1,年-月-日 echo date('Y-m-j'); 2007-02-6 echo date ...

  5. php rename函数_php中rename()函数

    php filesystem 函数,rename() 函数重命名文件或目录,若成功,则该函数返回 true.若失败,则返回 false. 语句:rename(oldname,newname,conte ...

  6. php mkdir函数_php中mkdir函数用法实例分析

    本文实例分析了php中mkdir函数用法.分享给大家供大家参考.具体分析如下: mkdir()语法:bool mkdir(字符串目录,诠释权限)dirThe新directory.permissions ...

  7. php rename函数_php使用rename()函数移动文件

    php rename函数介绍 rename - 重命名一个文件或目录 语法: bool rename ( string $oldname , string $newname [, resource $ ...

  8. c++ 函数 -函数重载 -特殊用途的语言特性(默认实参,内联函数 ,constexpr ,assert,NDEBUG)

    c++ 函数 -函数重载 -特殊用途的语言特性 文章目录 c++ 函数 -函数重载 -特殊用途的语言特性 函数重载 定义: 重载和const形参 const_cast 和重载 const_cast 重 ...

  9. c语言中assert函数,C++ 中assert断言函数的基本用法

    在我们的实际开发过程之中,常常会出现一些隐藏得很深的BUG,或者是一些概率性发生的BUG,通常这些BUG在我们调试的过程中不会出现很明显的问题,但是如果我们将其发布,在用户的各种运行环境下,这些程序可 ...

最新文章

  1. 五、(H3C)基于802.1x+AD+DHCP+NPS动态下发vlan 华三交换机配置
  2. linux卸载桌面Ubuntu,Ubuntu安装卸载KDE桌面之折腾记
  3. 使用dnSpy调试asp.net core源码
  4. html总结:文本框填满表格
  5. 密歇根大学团队成果:自动驾驶视觉系统——Bio-LSTM: 三维步行姿势和步态预测的生物力学反馈神经网络
  6. Python 函数 -next()
  7. 300页!2020年全网最新Java面试题(附答案)开放下载!超全!!
  8. [论文总结] 深度学习在农业领域应用论文笔记8
  9. linux网络lo是什么,Linux基礎必懂:eth0,eth1,eth2,lo是什么意思?
  10. 【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(5):克拉默法则
  11. DOS操作系统基本使用方法
  12. 概率空间--样本--事件--随机变量--
  13. WebAPI第四天学习总结—— 常见网页特效案例(轮播图、节流阀、返回顶部、筋斗云案例)
  14. 面试过程中如何回答面试官的问题,才能让你顺利拿到Offer?冰河想以经典的事务问题对你说这些!!(建议收藏)
  15. MySQL中关于字符编码的配置
  16. 3-Go并发编程与协程Goroutine
  17. Flask——1.初识flask微框架
  18. eNSP配置静态路由及默认路由的三种案例
  19. 【考研英语语法】写作中的复杂名词短语
  20. 【论文阅读】自然语言生成(NLG)——基于plan思想的Data2Text任务实现

热门文章

  1. html字符串转换jsx,javascript – 将React.element转换为JSX字符串
  2. 怎么把分开的pdf放在一起_糖和盐混在一起了要怎么分开?| 趣问万物
  3. array python 交集_Python基础(二)——列表和元组
  4. php下载数据表,javascript – 如何使用php下载表数据作为excel表..?
  5. android h5使用缓存_Android SDK 的 H5 打通方案演进 | 数据采集
  6. WordPress 不同分类目录调用不同模板的方法
  7. 使用Visio 2000逆向工程将代码转换为UML图表
  8. /deep/使用方式方式;/deep/无效; ::v-deep和>>>使用;
  9. [react] 什么是React的实例?函数式组件有没有实例?
  10. [react] 举例说明如何在React创建一个事件