(PHP 4, PHP 5, PHP 7, PHP 8)
assert_options — 设置/获取断言的各种标志
设置 assert() 的各种控制选项,或者是仅仅查询当前的设置。
注意: 自 PHP 7.0.0 起,不鼓励使用 assert_options(),而是分别使用 ini_set() 和 ini_get() 设置和获取 php.ini 指令 zend.assertions 和 assert.exception。
what
标志 | INI 设置 | 默认值 | 描述 |
---|---|---|---|
ASSERT_ACTIVE | assert.active | 1 | 启用 assert() 断言 |
ASSERT_WARNING | assert.warning | 1 | 为每个失败的断言产生一个 PHP 警告(warning) |
ASSERT_BAIL | assert.bail | 0 | 在断言失败时中止执行 |
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | 在断言表达式求值时禁用 error_reporting |
ASSERT_CALLBACK | assert.callback | (null ) |
断言失败时调用回调函数 |
value
可选的新选项值。
通过 ASSERT_CALLBACK
和 assert.callback 设置的回调函数应该有以下签名:
$file
,$line
,$assertion
,$description
= ?value
传递空字符串会重置断言回调。
返回任意标志的原始设置,出错时返回 false
。
示例 #1 assert_options() 例子
<?php
// 处理断言失败时的函数
function assert_failure($file, $line, $assertion, $message)
{
echo "The assertion $assertion in $file on line $line has failed: $message";
}
// 我们的测试函数
function test_assert($parameter)
{
assert(is_bool($parameter));
}
// 设置断言标志
assert_options(ASSERT_ACTIVE, true);
assert_options(ASSERT_BAIL, true);
assert_options(ASSERT_WARNING, false);
assert_options(ASSERT_CALLBACK, 'assert_failure');
// 让一个断言会失败
test_assert(1);
// 由于 ASSERT_BAIL 是 true,这里永远也到不了
echo 'Never reached';
?>