#33698 [Bgs->Sus]: Conflicts with multiple interfaces sharing common method names

From: Date: Fri, 15 Jul 2005 12:13:14 +0000
Subject: #33698 [Bgs->Sus]: Conflicts with multiple interfaces sharing common method names
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-81898@lists.php.net to get a copy of this message
ID: 33698 Updated by: wez@php.net Reported By: jason at hybd dot net -Status: Bogus +Status: Suspended Bug Type: Feature/Change Request Operating System: * PHP Version: 5.0.4 New Comment: FWIW, I agree; I think our interface support is pretty crappy because of this. I'm changing this to suspended status, because maybe one day it will appear, it's just not possible at the moment. Previous Comments: ------------------------------------------------------------------------ [2005-07-15 13:57:10] jason at hybd dot net 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. ------------------------------------------------------------------------ [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

« previous php.bugs (#81898) next »