(PHP 4, PHP 5, PHP 7, PHP 8)
assert_options — Set/get the various assert flags
Set the various assert() control options or just query their current settings.
Note: The use of assert_options() is discouraged in favor of setting and getting the php.ini directives zend.assertions and assert.exception with ini_set() and ini_get(), respectively.
option
Option | INI Setting | Default value | Description |
---|---|---|---|
ASSERT_ACTIVE | assert.active | 1 | enable assert() evaluation |
ASSERT_EXCEPTION | assert.exception | 1 | throws an AssertionError for each failed assertions |
ASSERT_WARNING | assert.warning | 1 | issue a PHP warning for each failed assertion |
ASSERT_BAIL | assert.bail | 0 | terminate execution on failed assertions |
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | disable error_reporting during assertion expression evaluation. Removed as of PHP 8.0.0. |
ASSERT_CALLBACK | assert.callback | (null ) |
Callback to call on failed assertions |
value
An optional new value for the option.
The callback function set via ASSERT_CALLBACK
or
assert.callback
should have the following signature:
$file
,$line
,$assertion
,$description
= ?file
line
assertion
null
.
description
value
resets the assert callback.
Returns the original setting of any option.
If option
is not a valid option a
ValueError is thrown.
Version | Description |
---|---|
8.0.0 |
If option is not a valid option,
a ValueError is now thrown.
Previously false was returned.
|
Example #1 assert_options() example
<?php
// This is our function to handle
// assert failures
function assert_failure($file, $line, $assertion, $message)
{
echo "The assertion $assertion in $file on line $line has failed: $message";
}
// This is our test function
function test_assert($parameter)
{
assert(is_bool($parameter));
}
// Set our assert options
assert_options(ASSERT_ACTIVE, true);
assert_options(ASSERT_BAIL, true);
assert_options(ASSERT_WARNING, false);
assert_options(ASSERT_CALLBACK, 'assert_failure');
// Make an assert that would fail
test_assert(1);
// This is never reached due to ASSERT_BAIL
// being true
echo 'Never reached';
?>