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