php / php/php-src

"internal error" in ReflectionParameter::getDefaultValue on Variable-length argument list

Offen
#12,371 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

@ndossche arbeitet bereits daran.

Seit 06.10.2023.

  • #12372 von @ndossche — offen
Bug Extension: reflection Status: Verified
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.2k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das bereitgestellte PHP 8.2.11-Snippet zu reproduzieren, und verfolge den Einstiegspunkt ReflectionParameter::getDefaultValue() für einen variadischen Parameter. Die Änderung ist abgeschlossen, wenn der Aufruf keinen internen Fehler mehr auslöst und das erwartete leere Array erzeugt; ein verknüpfter offener Pull Request zeigt, dass diese Arbeit bereits im Gange ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, php
Bereich
backend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.