mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Fix fetching default value of internal function with userland arginfo
"Fix" in the sense of "not crash". We aren't able to actually display the default value for this case, as there's no way to fetch the relevant information right now.
This commit is contained in:
parent
bef20d47af
commit
b4196ae9df
2 changed files with 20 additions and 1 deletions
|
@ -667,7 +667,10 @@ static void _parameter_string(smart_str *str, zend_function *fptr, struct _zend_
|
|||
if (!required) {
|
||||
if (fptr->type == ZEND_INTERNAL_FUNCTION) {
|
||||
smart_str_appends(str, " = ");
|
||||
if (((zend_internal_arg_info*)arg_info)->default_value) {
|
||||
/* TODO: We don't have a way to fetch the default value for an internal function
|
||||
* with userland arg info. */
|
||||
if (has_internal_arg_info(fptr)
|
||||
&& ((zend_internal_arg_info*)arg_info)->default_value) {
|
||||
smart_str_appends(str, ((zend_internal_arg_info*)arg_info)->default_value);
|
||||
} else {
|
||||
smart_str_appends(str, "<default>");
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
--TEST--
|
||||
Fetching default value of an internal trampoline function with userland arginfo
|
||||
--FILE--
|
||||
<?php
|
||||
$closure = function ($b = 0) {};
|
||||
$ro = new ReflectionObject($closure);
|
||||
$rm = $ro->getMethod('__invoke');
|
||||
echo $rm, "\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
Method [ <internal> public method __invoke ] {
|
||||
|
||||
- Parameters [1] {
|
||||
Parameter #0 [ <optional> $b = <default> ]
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue