|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull Requests
Pull requests:
HistoryAllCommentsChangesGit/SVN commits
[2016-06-28 11:23 UTC] nikic@php.net
-Status: Open
+Status: Verified
[2016-06-28 11:23 UTC] nikic@php.net
[2016-06-28 12:52 UTC] postmaster at greg0ire dot fr
[2016-06-30 08:48 UTC] mail at pmmaga dot net
[2016-07-03 21:30 UTC] mail at pmmaga dot net
[2016-07-05 12:39 UTC] nikic@php.net
-Status: Verified
+Status: Closed
-Assigned To:
+Assigned To: nikic
[2016-07-05 12:39 UTC] nikic@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 12 22:00:01 2025 UTC |
Description: ------------ When declaring a public method in a child class, one can't reuse the name of a private method of the parent without being issued a Warning for php 7, a Strict Standards error for php 5.5 - 5.6, unless the signature is considered compatible. Test script: --------------- <?php class Foo { private function getName() { return 'John'; } } class Bar extends Foo { public function getName($extraArgument) { return $extraArgument; } } Demonstration : https://3v4l.org/SNlDO Expected result: ---------------- The parent method is private : it can't be called from the outside and as far as the child class is concerned, it does not exist. Creating a public method with the same name is not overriding the method since methods in the parent class will still call the private method when asked to. Actual result: -------------- php 7.7 : Warning: Declaration of Bar::getName($extraArgument) should be compatible with Foo::getName() in /in/SNlDO on line 17 5.5.0 - 5.6.22 : Strict Standards: Declaration of Bar::getName() should be compatible with Foo::getName() in /in/SNlDO on line 17