Bug #71119 [Nab]: Cannot override methods on extended classes

From: Date: Tue, 15 Dec 2015 08:46:30 +0000
Subject: Bug #71119 [Nab]: Cannot override methods on extended classes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-197894@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=71119&edit=1 ID: 71119 User updated by: chazmead89 at gmail dot com Reported by: chazmead89 at gmail dot com Summary: Cannot override methods on extended classes Status: Not a bug Type: Bug Package: *General Issues Operating System: Mac OSX 10.8.5 PHP Version: 7.0.0 Block user comment: N Private report: N New Comment: If the parent class specifies an interface without specifying an interface.. then what is the point in the Interface type? Previous Comments: ------------------------------------------------------------------------ [2015-12-14 19:35:47] requinix@php.net "Basic method overriding" is you making sure your child class conforms to the interface specified by the parent class. That includes type hints. ------------------------------------------------------------------------ [2015-12-14 18:28:48] chazmead89 at gmail dot com Description: ------------ PHP Warning: Declaration of B::foo(string $boo) should be compatible with A::foo(array $bar) in php shell code on line 3 This should not be a warning... this is basic method overriding, and should be perfectly good code. For some reason I get a fatal error on apache handler, but only warning on CLI, possibly Xdebug RC4 escalating it as a bug in XDdebug. Test script: --------------- class A { public function foo(string $bar) { print_r($bar); } } class B extends A { public function foo(array $bar) { print_r($bar); } } Actual result: -------------- PHP Warning: Declaration of B::foo(string $boo) should be compatible with A::foo(array $bar) in php shell code on line 3 Warning: Declaration of B::foo(string $boo) should be compatible with A::foo(array $bar) in php shell code on line 3 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=71119&edit=1

« previous php.bugs (#197894) next »