php7
期望是向后兼容的增强到旧 assert()
函数。期望允许在生产代码零成本的断言,并提供在断言失败时抛出自定义异常的能力。assert()
不是一种语言构建体,其中第一个参数是一个表达式的比较字符串
或布尔值
用于测试。配置指令assert()
指示 | 默认值 | 可能的值 |
zend.assertions | 1 |
1 \- 生成并执行代码(开发模式) 0 \- 生成代码,但在运行时跳过它 -1 \- 不生成代码(生产模式) |
assert.exception | 0 | 1 \- 当断言失败时抛出异常提供的对象,或者在没有提供异常的情况下抛出一个新的 AssertionError 对象。 0 \- 如上所述使用或生成Throwable,但仅生成基于该对象的警告而不是抛出它(与PHP 5行为兼容) |
参数:
断言 - 断言。 在PHP 5
中,它必须是要评估的字符串
或要测试的布尔值
。在PHP 7
中,这也可以是任何返回值的表达式,该值将被执行并且结果用于指示断言是成功还是失败。
描述 - 如果断言失败,则将包含在失败消息中的可选描述。
异常 - 在PHP 7
中,第二个参数可以是 Throwable
对象而不是描述性字符串,在这种情况下,如果断言失败并且启用了 assert.exception
配置指令,则这是将要抛出的对象。
返回值
如果断言是假的则返回FALSE
, 反之则返回TRUE
。
实例:
<?php ini_set('assert.exception', 1); class CustomError extends AssertionError {} assert(false, new CustomError('Custom Error Message!')); ?>
它产生以下浏览器输出:
Fatal error: Uncaught CustomError: Custom Error Message! in...
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理