Re: function and interface in parameter list?
| From: | Jochem Maas | Date: | Tue, 01 Feb 2005 18:56:53 +0000 |
| Subject: | Re: function and interface in parameter list? | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-207849@lists.php.net to get a copy of this message | ||
Marco Schuler wrote:
Am Dienstag, 1. Februar 2005 16:07 schrieb Marco Schuler:ah yes! although ClassType Hinting would be more truthfulAm Dienstag, 1. Februar 2005 15:50 schrieb Jochem Maas:Found it out: It is called "Type Hinting".Marco Schuler wrote:Hi I found a function declaration in an open source project (in php5) and I could not find documantation for this. The function declaration is: public function registerComp(IComp $comp) Is it a kind of typecast?no its a type declaration (is that the correct term). it states that $comp must be an object of class IComp (or a subclass of it). if $comp is not anj IComp object you get a fatal error.
http://ch2.php.net/manual/en/language.oop5.typehinting.php There is a user contributed note on that page: "Type hinting allows not to specify a required interface to be supported for the object being passed. Beware, the interpreter will not give an error for that." Is it a bug in php or what is the reason?I don't even understand what the guy was trying to say in the user comments - let alone if its a bug or a feature! with regard to type hinting with Interfaces - I have no idea offhand, but by using my hands I found out in about 30 seconds... I wrote the bit of code below, if you run it you will find out for yourself whether is works ;-) php -r ' interface MyInt { function doIt(); } class MyObj implements MyInt { function doIt() { echo "boo"; } } function goGo(MyInt $x) { $x->doIt(); } goGo(new MyObj); '
-- Cheers!