php / php/php-src

yield without value in reference generator function does not create notice

Offen
#16,761 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bug Category: Generators Status: Verified
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

The following code:

<?php
error_reporting(E_ALL);
function &y()
{
  yield null; // warning
  yield; // no warning
}
foreach (y() as &$y);

Resulted in this output:

PHP Notice:  Only variable references should be yielded by reference in /home/user10/test.php on line 5

But I expected this output instead:

PHP Notice:  Only variable references should be yielded by reference in /home/user10/test.php on line 5
PHP Notice:  Only variable references should be yielded by reference in /home/user10/test.php on line 6
PHP Version

PHP 8.2.24 (cli) (built: Sep 27 2024 04:16:10) (NTS)

Operating System

Debian GNU/Linux 12 (bookworm)

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 Beispiel des Referenzgenerators unter PHP 8.2.24 mit aktiviertem E_ALL zu reproduzieren, und verfolge dann, wie die beiden yield-Formen behandelt werden. Als abgeschlossen gilt die Aufgabe, wenn das wertlose yield dieselbe Notice wie yield null ausgibt und eine Regressionstestabdeckung für beide Zeilen vorhanden ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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