On 17 Feb 2004 at 8:59, Hans Lellelid wrote:

> interface IA {
>   function init();
>   function doSomething($arg1,$arg2);
> }
> 
> interface IB {
>     funciton init();
>     function doSomething($arg1, $arg2, $arg3, $arg4 = null);
>     function doSomethingElse($arg1);
> }
> 
> class A implements IA {
>    // same class body as above
> }
> 
> class B extends A implements IB {
>   // same class body as above
> }
> 
> Now I get fatal errors, because class B is inheriting functionality 
from 
> A that is required by the interface IB.  Actually, I think what is 
> happening (can someone confirm this?) is that class B is being 
forced to 
> implement both IA and IB, and because interfaces (unlike classes) 
are 
> not allowed to override methods class B cannot implement both 
interfaces.

Well that's a tricky one. I don't think there is a reasonable solution for 
this problem.

In my opinion, the engine should allow adding parameters with 
default values to the old API. In your example, we should just keep 
the status quo. As I said before, I don't see a solution that "fits the 
PHP goal". Such situations are certainly very rare and I can live that 
restriction.

-- 
Ferdinand Beyer
<[EMAIL PROTECTED]>

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to