On 20 Apr 2004 at 17:55, Stanislav Malyshev wrote:
> FB>>Impl guarantees that by implementing interface A.
>
> No. It _says_ it implements interface A, but you couldn't know if it
> indeed does, if we allow your model - maybe that "dispatched"
function
> call doesn't really accept those arguments?
interface I {
/** Documentation says: $a is an integer, $b is a string */
function doSomething($a, $b);
}
class C implements I
{
function doSomething($a, $b)
{
}
}
We still can't be sure if C::doSometing() actually accepts an integer
and a string. We have to trust C. So we can also trust Impl from the
previous example...
> FB>>What if Impl::doSomething() would accept exactly two
parameters, but
> FB>>expects them to be arrays?
>
> Then how can you say it implements B where object is required?
I meant to change Impl to accept arrays and to drop the B
implementation.
> Since PHP does not dispatch methods by parameters, I don't know
if there's
> a good way to implement both A and B interfaces except making
all
> doSomething definitions not accept parameters or give them
different
> names.
Provided that one has access to the interfaces...
--
Ferdinand Beyer
<[EMAIL PROTECTED]>
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php