php / php/php-src

`restore_xxx_handler()` does silently return even if there is no handler to restore

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

Dieses Issue hat noch niemand übernommen.

Feature Status: Needs Triage
Vorherrschende Sprache
C
Sterne
40.4k
Forks
8.1k
Ø Merge
2 T. 13 Std.
Gemergte PRs (30 T.)
96

Beschreibung

Description

The following code:

repro: https://3v4l.org/DDulh

<?php

restore_error_handler();
restore_error_handler();
restore_error_handler();

restore_exception_handler();
restore_exception_handler();
restore_exception_handler();

Resulted in this output:

But I expected this output instead:

php warning for each restore_xxx_handler() call if there is no handler to restore

The warnings are important to be inform the developer the operation is probably not wanted (ie. handler was never added).

PHP Version

any

Operating System

any

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, die Implementierungen von restore_error_handler() und restore_exception_handler() im PHP-Quellcode zu lokalisieren, und untersuche anschließend, wie wiederholte Aufrufe derzeit behandelt werden. Reproduziere die gemeldete Sequenz und füge Tests für Aufrufe hinzu, die ohne einen wiederherzustellenden Handler erfolgen. Als abgeschlossen gilt die Aufgabe, wenn jeder solche Aufruf die erwartete PHP-Warnung ausgibt, ohne die normale Wiederherstellung des Handlers zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, php
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

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