Override construct function with optional argument should not produce fatal error
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
Piste de recherche
Reproduisez les deux extraits d’héritage d’interfaces dans PHP 8.4.24, en comparant l’ordre des interfaces parentes et l’erreur de compatibilité du constructeur qui en résulte. Commencez par suivre le chemin du moteur qui valide les méthodes d’interface héritées ; le travail sera terminé lorsque les deux ordres de déclaration se comporteront de manière cohérente sans l’erreur fatale signalée et qu’un test de régression couvrira le cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
The following code:
<?php
interface MyInterface1 { public function __construct(?string $name = null); }
interface MyInterface2 { public function __construct(?string $name = null, ?int $id = null); }
interface MyInterface3 extends MyInterface1, MyInterface2 { }
Resulted in this output:
PHP Fatal error: Declaration of MyInterface1::__construct(?string $name = null) must be compatible with MyInterface2::__construct(?string $name = null, ?int $id = null) in php shell code on line 1
But I expected no error and the following code works as expected:
<?php
interface MyInterface1 { public function __construct(?string $name = null); }
interface MyInterface2 { public function __construct(?string $name = null, ?int $id = null); }
interface MyInterface4 extends MyInterface2, MyInterface1 { }
PHP Version
PHP 8.4.24 (cli) (built: Jul 30 2026 15:23:13) (NTS)
Copyright (c) The PHP Group
Built by Ubuntu
Zend Engine v4.4.24, Copyright (c) Zend Technologies
with Zend OPcache v8.4.24, Copyright (c), by Zend Technologies
Operating System
Ubuntu 24.04.4 LTS
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 3 h
- PR mergées (30 j)
- 151
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire 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.
Autres issues de php/php-src
-
NULL pointer dereference in php_ini.c (PHP 8.3)Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. OuverteBug Status: Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Bug Status: Needs Feedback
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
php/php-src#24121 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Variant analysis: 1 unfixed sibling safety gap in php-srcPeut-être pris @kamil-tekiela l’a pris il y a 7 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
php/php-src#23958 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
sapi_lsapi_ub_write does not return bytes written in lsapi modePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. OuverteBug Status: Needs Triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour
-
Bug Status: Needs Triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de php/php-src
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
EchoTools/nevr-runtime#117 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
DarkFlippers/qUnleashed#240 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
AFLplusplus/AFLplusplus#2899 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
HarbourMasters/Shipwright#7320 ·
Les mainteneurs répondent en général sous 1 jour