PHP 7.2.25 Released

assert_options

(PHP 4, PHP 5, PHP 7)

assert_optionsSet/get the various assert flags

Descrierea

assert_options ( int $what [, mixed $value ] ) : mixed

Set the various assert() control options or just query their current settings.

Parametri

what

Assert Options
Option INI Setting Default value Description
ASSERT_ACTIVE assert.active 1 enable assert() evaluation
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
ASSERT_CALLBACK assert.callback (NULL) Callback to call on failed assertions

value

An optional new value for the option.

Valorile întoarse

Returns the original setting of any option or FALSE on errors.

Exemple

Example #1 assert_options() example

<?php
// This is our function to handle 
// assert failures
function assert_failure()
{
    echo 
'Assert failed';
}

// 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';
?>

A se vedea și

  • assert() - Checks if assertion is FALSE

add a note add a note

User Contributed Notes 3 notes

up
1
keithy at consultant dot com
5 months ago
To reset the callback:

assert_options(ASSERT_CALLBACK,null); // does not work  

assert_options(ASSERT_CALLBACK,"");  // appears to work
up
1
Patrick Schulz
8 days ago
The correct signature of the callback function is:

function assert_failure($file, $line, $assertedString, $message)

$assertedString is usually empty if the assertion was a boolean expression. Otherwise it contains the evaluated string.
up
0
16 years ago
Here is an exemple how to use the assertion callback function :

<?php
  assert_options
( ASSERT_CALLBACK, 'assert_callback');

  function
assert_callback( $script, $line, $message ) {
    echo
'You have a design error in your script <b>', $script,'</b> : line <b>', $line,'</b> :<br />';
    echo
'<b>', ereg_replace( '^.*//\*', '', $message ), '</b><br /><br />';
    echo
'Open the source file and check it, because it\'s not a normal behaviour !';
    exit;
  }

 
$x = 3;
 
assert('is_integer( $x ) && ($x >= 0) && ($x <= 10); //* $x must be an integer value from 0 to 10' );
  echo
"0 <= $x <= 10";
?>

assertion is usefull for "design by contract" methodology ...
To Top