Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : PHP Options&Information : assert_options

assert_options

Set/get the various assert flags (PHP 4, PHP 5)
mixed assert_options ( int what [, mixed value] )

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

Parameters

what

Table 260. Assert Options

option ini-parameter default 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) user function to call on failed assertions


value

An optional new value for the option.

Return Values

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

Code Examples / Notes » assert_options

frédéric bouchery

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 ...


webmaster

For all of you try to throw an exception in assert callback function you must set options in following form:
<?php
error_reporting(E_ALL | E_STRICT);
function assert_callcack($file, $line, $message) {
throw new Exception();
}
assert_options(ASSERT_ACTIVE,     1);
assert_options(ASSERT_WARNING,    0);
assert_options(ASSERT_BAIL,       0);
assert_options(ASSERT_QUIET_EVAL, 0);
assert_options(ASSERT_CALLBACK,   'assert_callcack');
try {
assert(false);
} catch (Exception $e) {
echo 'Yes';
}
?>


gherson

After being set to 1, my assert_options(ASSERT_BAIL) value stubbornly stayed there until Apache was restarted, returning it to its default of 0.
(Reproducible on my PHP Version 5.1.2, Apache/2.2.0 (Win32))


Change Language


Follow Navioo On Twitter
assert_options
assert
dl
extension_loaded
get_cfg_var
get_current_user
get_defined_constants
get_extension_funcs
get_include_path
get_included_files
get_loaded_extensions
get_magic_quotes_gpc
get_magic_quotes_runtime
get_required_files
getenv
getlastmod
getmygid
getmyinode
getmypid
getmyuid
getopt
getrusage
ini_alter
ini_get_all
ini_get
ini_restore
ini_set
main
memory_get_peak_usage
memory_get_usage
php_ini_scanned_files
php_logo_guid
php_sapi_name
php_uname
phpcredits
phpinfo
phpversion
putenv
restore_include_path
set_include_path
set_magic_quotes_runtime
set_time_limit
sys_get_temp_dir
version_compare
zend_logo_guid
zend_thread_id
zend_version
eXTReMe Tracker