Bug #75590 [NEW]: Fatal error when removing optional argument in subclass (BC break).

From: Date: Wed, 29 Nov 2017 17:03:00 +0000
Subject: Bug #75590 [NEW]: Fatal error when removing optional argument in subclass (BC break).
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-212807@lists.php.net to get a copy of this message
From: christoph at burschka dot de Operating system: MacOS PHP version: 7.2.0RC6 Package: *General Issues Bug Type: Bug Bug description:Fatal error when removing optional argument in subclass (BC break). Description: ------------ In this inheritance chain, an interface defines a function without an argument, then an implementing class adds an optional argument, and a subclass defines the function with the original signature from the interface (no argument). This works in PHP 7.1.11, but triggers E_ERROR in PHP 7.2.0RC6. (Note: Without the interface, simply removing an optional argument in a subclass is E_WARNING on both 7.1.11 and 7.2.0RC6.) Test script: --------------- interface A { public function f(); } class B implements A { public function f(A $x = NULL) {} } class C extends B { public function f() {} } Expected result: ---------------- Same behavior in PHP 7.2.0RC6 as PHP 7.1.11, or at worst a non-fatal warning/deprecation. Actual result: -------------- No warning in 7.1.11, E_ERROR in 7.2.0RC6. -- Edit bug report at https://bugs.php.net/bug.php?id=75590&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=75590&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=75590&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=75590&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=75590&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=75590&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=75590&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=75590&r=needscript Try newer version: https://bugs.php.net/fix.php?id=75590&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=75590&r=support Expected behavior: https://bugs.php.net/fix.php?id=75590&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=75590&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=75590&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=75590&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=75590&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=75590&r=dst IIS Stability: https://bugs.php.net/fix.php?id=75590&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=75590&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=75590&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=75590&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=75590&r=mysqlcfg

« previous php.bugs (#212807) next »