Re: function and interface in parameter list?

From: 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:
Am Dienstag, 1. Februar 2005 15:50 schrieb Jochem Maas:
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.
Found it out: It is called "Type Hinting".
ah yes! although ClassType Hinting would be more truthful
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!


« previous php.general (#207849) next »