assert_options
(PHP 4, PHP 5, PHP 7, PHP 8)
Set/get the various assert flags
Function-8-3-0
Description
Set the various assert() control options or just query their current settings.
The use of assert_options() is discouraged in favor of setting and getting the Ini directives zend.assertions and assert.exception with ini_set() and ini_get(), respectively.
Parameters
optionOption INI Setting Default value Description ASSERT_ACTIVE assert.active 1 enable assert()evaluationASSERT_EXCEPTION assert.exception 1 throws an AssertionErrorfor each failed assertionsASSERT_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 valueAn optional new value for the option.
The callback function set via
ASSERT_CALLBACKor assert.callback should have the following signature:assert_callback(string $file, int $line, string|null $assertion, [string $description]): voidfileThe file where
assert()has been called.lineThe line where
assert()has been called.assertionPrior to PHP 8.0.0, the assertion which has been passed to
assert(), but only when the assertion is given as a string. (If the assertion is a boolean condition, this parameter will be an empty string.) As of PHP 8.0.0, this parameter is always null.descriptionThe description that has been passed to
assert().
Passing an empty string as value resets the assert callback.
Return Values
Returns the original setting of any option.
Errors/Exceptions
If option is not a valid option a ValueError is thrown.
Changelog
| Version | Description |
|---|---|
| 8.3.0 | assert_options() is now deprecated. |
| 8.0.0 | If option is not a valid option, a ValueError is now thrown. Previously false was returned. |
Examples
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';
?>