On 20 Apr 2004 at 17:38, Stanislav Malyshev wrote:

> FB>>interface A {
> FB>>    public function doSomething($integer1, $integer2);
> FB>>}
> FB>>
> FB>>interface B {
> FB>>   public function doSomething(MyObject $obj);
> FB>>}
> FB>>
> FB>>class Impl implements A, B
> FB>>{
> FB>>    // "Overloaded" - supports both doSomething() interfaces
> FB>>    public function doSomething()
> FB>>    {
> FB>>        // Use var_args to distinquish the two doSomething()'s
> FB>>    }
> FB>>}
> 
> The problem here that you can't know if Impl would actually accept 
> MyObject or two integers as arguments. So if some method 
requires object 
> with interface A and it's passed Impl, it cannot actually be sure it 
can 
> use it as an A object. 

Impl guarantees that by implementing interface A.

What if Impl::doSomething() would accept exactly two parameters, 
but expects them to be arrays?

IMO you cannot enforce this strictness with loose types...

-- 
Ferdinand Beyer
<[EMAIL PROTECTED]>

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

Reply via email to