PHP之assert()函数
assert()函数其实是⼀个断⾔函数。
那么什么是断⾔呢?百度百科上是这么说的:编写代码时,我们总是会做出⼀些假设,断⾔就是⽤于在代码中捕捉这些假设。说到这⾥,⼤家应该能知道assert()函数是⼲嘛⽤的了吧?好,接下来我们看⼀下PHP官⽅⽂档是怎么解释的:
assert — 检查⼀个断⾔是否为 FALSE
PHP 5
bool assert ( mixed $assertion [, string $description ] )
PHP 7
bool assert ( mixed $assertion [, Throwable $exception ] )
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()。
false是什么函数相⽐于Python等其他语⾔来讲,PHP的assert()函数显得更加复杂。⽽在⼀般的开发中,当然,这是由于我没有写过单元测试,我是⽐较习惯于⽤if()else{}来进⾏布尔值判断,或者是使⽤var_dump来打印调试。所以基本很少使⽤assert()这个断⾔函数。尤其是因为既然它⼀般不推荐出现在⽣产模式下,那么开发完后的删除操作显得尤为重要,不经意的就耗费了很多时间。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论