"internal error" in ReflectionParameter::getDefaultValue on Variable-length argument list
Abierto
Bug
Extension: reflection
Status: Verified
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.2k
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 103
Descripción
Description
The following code:
<?php
declare(strict_types=1);
function f(...$args){
echo "see? arguments are optional.\n";
}
f();
$ref = new ReflectionFunction('f');
var_dump($ref->getParameters()[0]->getDefaultValue());
Resulted in this output:
see? arguments are optional.
Fatal error: Uncaught ReflectionException: Internal error: Failed to retrieve the default value in /in/gHhJ2:8
Stack trace:
#0 /in/gHhJ2(8): ReflectionParameter->getDefaultValue()
#1 {main}
thrown in /in/gHhJ2 on line 8
But I expected this output instead:
see? arguments are optional.
array(0) {
}
3v4l: https://3v4l.org/gHhJ2
PHP Version
8.2.11
Operating System
windows 10
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza reproduciendo el fragmento de PHP 8.2.11 proporcionado y sigue el punto de entrada ReflectionParameter::getDefaultValue() para un parámetro variádico. El cambio estará completo cuando la llamada deje de lanzar un error interno y produzca el array vacío esperado; un pull request abierto y vinculado muestra que ese trabajo ya está en curso.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- c, php
- Área
- backend
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 25/100