#33698 [Bgs]: Conflicts with multiple interfaces sharing common method names
| From: | jason at hybd dot net | Date: | Fri, 15 Jul 2005 11:57:12 +0000 |
| Subject: | #33698 [Bgs]: Conflicts with multiple interfaces sharing common method names | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-81897@lists.php.net to get a copy of this message | ||
ID: 33698
User updated by: jason at hybd dot net
Reported By: jason at hybd dot net
Status: Bogus
Bug Type: Feature/Change Request
Operating System: *
PHP Version: 5.0.4
New Comment:
I know PHP != Java, but surely this sort of stuff should be documented?
Most people will expect interfaces to work like Java interfaces or C++
"interfaces" (Pure virtual abstract methods), as many other languages
seem to follow this behaviour. As I said this is debatable as it
depends how you look at things, and likewise it is fairly easy to work
round this issue.
Previous Comments:
------------------------------------------------------------------------
[2005-07-15 12:44:04] sniper@php.net
PHP != Java
------------------------------------------------------------------------
[2005-07-14 17:35:15] jason at hybd dot net
Description:
------------
This is debateable if this is a bug or not. Personally, I don't regard
it as a bug.
Classes that implement >1 interface that share common methods raise
fatal errors. Because of the abstract nature of interfaces, no error or
warning should be rasied.
I know PHP <> Java, but Java doesn't raise any errors, and PHP5's OO
model is very close to Java's
Reproduce code:
---------------
interface FirstInterface
{
function execute();
}
interface SecondInterface
{
function execute();
}
class MyClass implements FirstInterface, SecondInterface
{
function execute()
{
echo "Hello World";
}
}
$obj = new MyClass();
$obj->execute();
Expected result:
----------------
Hello World
Actual result:
--------------
Can't inherit abstract function SecondInterface::execute()
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=33698&edit=1