Bug #71119 [Nab]: Cannot override methods on extended classes
| From: | chazmead89 at gmail dot com | 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