"internal error" in ReflectionParameter::getDefaultValue on Variable-length argument list
Ouverte
Bug
Extension: reflection
Status: Verified
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire l’extrait PHP 8.2.11 fourni et suivez le point d’entrée ReflectionParameter::getDefaultValue() pour un paramètre variadique. La modification est terminée lorsque l’appel ne déclenche plus d’erreur interne et produit le tableau vide attendu ; une pull request ouverte et liée montre que ce travail est déjà en cours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- c, php
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 25/100