mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
MFH: Use a better function name for closure related errors and debug_backtrace()
This commit is contained in:
parent
d4e4cebd65
commit
850f9567b8
3 changed files with 68 additions and 3 deletions
|
@ -25,7 +25,7 @@ NULL
|
|||
|
||||
Notice: Undefined variable: y in %s on line %d
|
||||
|
||||
Warning: Missing argument 1 for (), called in %s on line %d and defined in %s on line %d
|
||||
Warning: Missing argument 1 for {closure}(), called in %s on line %d and defined in %s on line %d
|
||||
NULL
|
||||
|
||||
Catchable fatal error: Argument 1 passed to test() must be an instance of Closure, instance of stdClass given, called in %s on line %d and defined in %s on line %d
|
||||
|
|
65
Zend/tests/closure_032.phpt
Normal file
65
Zend/tests/closure_032.phpt
Normal file
|
@ -0,0 +1,65 @@
|
|||
--TEST--
|
||||
Closure 032: Testing Closure and debug_backtrace
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function test(closure $a) {
|
||||
$a(23);
|
||||
}
|
||||
|
||||
|
||||
$c = function($param) { print_r(debug_backtrace()); debug_print_backtrace(); };
|
||||
|
||||
$c(23);
|
||||
test($c);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Array
|
||||
(
|
||||
[0] => Array
|
||||
(
|
||||
[file] => %s
|
||||
[line] => %d
|
||||
[function] => {closure}
|
||||
[args] => Array
|
||||
(
|
||||
[0] => 23
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
)
|
||||
#0 {closure}(23) called at [%s:%d]
|
||||
Array
|
||||
(
|
||||
[0] => Array
|
||||
(
|
||||
[file] => %s
|
||||
[line] => %d
|
||||
[function] => {closure}
|
||||
[args] => Array
|
||||
(
|
||||
[0] => 23
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
[1] => Array
|
||||
(
|
||||
[file] => %s
|
||||
[line] => %d
|
||||
[function] => test
|
||||
[args] => Array
|
||||
(
|
||||
[0] => Closure Object
|
||||
(
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
)
|
||||
#0 {closure}(23) called at [%s:%d]
|
||||
#1 test(Closure Object ()) called at [%s:%d]
|
||||
|
|
@ -1387,7 +1387,7 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to
|
|||
zend_op *current_op;
|
||||
|
||||
function_name.op_type = IS_CONST;
|
||||
ZVAL_STRINGL(&function_name.u.constant, "", sizeof("")-1, 1);
|
||||
ZVAL_STRINGL(&function_name.u.constant, "{closure}", sizeof("{closure}")-1, 1);
|
||||
|
||||
zend_do_begin_function_declaration(function_token, &function_name, 0, return_reference, NULL TSRMLS_CC);
|
||||
|
||||
|
@ -1402,7 +1402,7 @@ void zend_do_begin_lambda_function_declaration(znode *result, znode *function_to
|
|||
if (is_static) {
|
||||
CG(active_op_array)->fn_flags |= ZEND_ACC_STATIC;
|
||||
}
|
||||
CG(active_op_array)->fn_flags |= ZEND_ACC_CLOSURE;
|
||||
CG(active_op_array)->fn_flags |= ZEND_ACC_CLOSURE;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue