mirror of
https://github.com/php/php-src.git
synced 2024-12-03 23:05:57 +08:00
Implemented FR #45235 A way to clear or reset the results for error_get_last()
This commit is contained in:
parent
bb2e62ecda
commit
908542c34e
@ -685,6 +685,9 @@ ZEND_END_ARG_INFO()
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_error_get_last, 0, 0, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_error_clear_last, 0, 0, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, function_name)
|
||||
ZEND_ARG_VARIADIC_INFO(0, parameters)
|
||||
@ -2942,6 +2945,7 @@ const zend_function_entry basic_functions[] = { /* {{{ */
|
||||
|
||||
PHP_FE(error_log, arginfo_error_log)
|
||||
PHP_FE(error_get_last, arginfo_error_get_last)
|
||||
PHP_FE(error_clear_last, arginfo_error_clear_last)
|
||||
PHP_FE(call_user_func, arginfo_call_user_func)
|
||||
PHP_FE(call_user_func_array, arginfo_call_user_func_array)
|
||||
PHP_FE(forward_static_call, arginfo_forward_static_call)
|
||||
@ -4700,6 +4704,33 @@ PHP_FUNCTION(error_get_last)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool error_clear_last()
|
||||
Clear the last occurred error. Returns false if there hasn't been an error yet. */
|
||||
PHP_FUNCTION(error_clear_last)
|
||||
{
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "") == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (PG(last_error_message)) {
|
||||
PG(last_error_type) = 0;
|
||||
PG(last_error_lineno) = 0;
|
||||
|
||||
free(PG(last_error_message));
|
||||
PG(last_error_message) = NULL;
|
||||
|
||||
if (PG(last_error_file)) {
|
||||
free(PG(last_error_file));
|
||||
PG(last_error_file) = NULL;
|
||||
}
|
||||
|
||||
RETURN_TRUE;
|
||||
}
|
||||
|
||||
RETURN_FALSE;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto mixed call_user_func(mixed function_name [, mixed parmeter] [, mixed ...])
|
||||
Call a user function which is the first parameter
|
||||
Warning: This function is special-cased by zend_compile.c and so is usually bypassed */
|
||||
|
@ -81,6 +81,7 @@ PHP_FUNCTION(get_magic_quotes_gpc);
|
||||
|
||||
PHP_FUNCTION(error_log);
|
||||
PHP_FUNCTION(error_get_last);
|
||||
PHP_FUNCTION(error_clear_last);
|
||||
|
||||
PHP_FUNCTION(call_user_func);
|
||||
PHP_FUNCTION(call_user_func_array);
|
||||
|
33
ext/standard/tests/general_functions/error_clear_last.phpt
Normal file
33
ext/standard/tests/general_functions/error_clear_last.phpt
Normal file
@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
error_clear_last() tests
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
var_dump(error_get_last());
|
||||
|
||||
var_dump(error_clear_last());
|
||||
|
||||
@$a = $b;
|
||||
|
||||
var_dump(error_get_last());
|
||||
var_dump(error_clear_last());
|
||||
var_dump(error_get_last());
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
NULL
|
||||
bool(false)
|
||||
array(4) {
|
||||
["type"]=>
|
||||
int(8)
|
||||
["message"]=>
|
||||
string(21) "Undefined variable: b"
|
||||
["file"]=>
|
||||
string(%d) "%s"
|
||||
["line"]=>
|
||||
int(%d)
|
||||
}
|
||||
bool(true)
|
||||
NULL
|
||||
Done
|
Loading…
Reference in New Issue
Block a user