mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
MFH: Use a better function name for closure related errors and debug_backtrace()
This commit is contained in:
parent
d4e4cebd65
commit
850f9567b8
@ -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…
Reference in New Issue
Block a user