Reply to Re: [PHP] function and interface in parameter list?

Your name:

Reply:


Posted by Jochem Maas on 02/01/05 20:56

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!
>

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация