Hello Jan,

Tuesday, July 15, 2003, 11:53:02 PM, you wrote:

JS> Zitat von Marcus BXrger <[EMAIL PROTECTED]>:

>> Hello Tony,
>>
>> Friday, July 11, 2003, 9:39:55 PM, you wrote:
>>
>> TB> In PHP5 I noticed this behaviou with interfaces.  If I have an
>> interface
>> TB> with a method that takes no paramaters, an implementing class for
>> that
>> TB> interfaces can have the same method take parameters...is that right?
>> TB> For example:
>>
>> TB> interface foo {
>> TB>     public function myFunction();
>> TB> }
>>
>> TB> class foobar implements foo {
>> TB>    public function myFunction($someText)
>> TB>   {
>> TB>       echo $someText;
>> TB>    }
>> TB> }
>>
>> TB> $myObj = new foobar();
>> $myObj->>myFunction('Testing, 1, 2, 3');
>>
>> TB> This code works.  To me it should flag an error or, at least a
>> warning,
>> TB> no?  I can see the flexibility of allowing this as it provides a
>> kind-of
>> TB> form of overloading but I want to make sure this behaves as intended
>> TB> before I make use of this feature/bug.
>>
>> TB> --Tony
>>
>>
>>
>> PHP is a wek typed language....i see your point but we are not strict
>> typed.

JS> What does this have to do with typed languages? Interfaces are not types of
JS> method implementations or some such.

JS> There's also a warning if you call a function/method with too few or too
JS> much arguments, that seems much more similar to this case for me.

A class type or protocol consists of the collection of all properties and
methods. A method type consists of its name, its return type and the parameter
list with the types. An interface is a special form of an abstract class.

Since PHP is weak typed we never check for types unless a typehint is used.
The rules for method inheriting and verifying if return/parameter types are
the same or the type change is allowed are complex. In other words we could
only enforce that a derived method has the same number of parameters. ATM
we had a lazy concensus not to test for the number of parameters.

-- 
Best regards,
 Marcus                            mailto:[EMAIL PROTECTED]


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

Reply via email to