Marcus Boerger wrote:

> Hello Robert,
> 
> Tuesday, October 19, 2004, 10:20:59 PM, you wrote:
> 
>> The issues surrounding this seemed to have been muddied up a little, I'll
>> try to clear them up.
> 
>> I see two different sets of functionality that people are asking for.
> 
>> #1. The ability to pass null on a type hinted param (but still a
>> #mandatory
>> param)
> 
>> #2. The ability to define an optional type hinted param.
> 
>> I see it as a very important distinction to make. Using the #2 to solve
>> #1 is not the solution PHP should implement. Using some method which
>> operates on the class hint itself is the right solution.
> 
>> For example, using the [] method:
> 
>> public function Compare([BaseClass] $objA, $cmpFunc);
> 
> As far as we disallow this and only allow optional types at the end i'd
> agre to this. Example:
> 
> public function Compare($cmpFunc, [BaseClass] $objA);
> 
I don't see any danger if we allow null with this syntax:

ÂpublicÂfunctionÂCompare([BaseClass]Â$objA,Â$cmpFunc);

if we don't allow null with this syntax:

ÂpublicÂfunctionÂCompare(BaseClassÂ$objA,Â$cmpFunc);

and if we make an argument optional with this syntax:

ÂpublicÂfunctionÂCompare($cmpFunc,ÂBaseClassÂ$objA=null);

If someone (like me) has thousands lines of code that uses 'null' meaning
'null reference' just need to use syntax #1.

If someone is very strict and don't even think about using null in
typehinted arguments, because null is not a value it's a type and must be
used as so, just need to use syntax #2.

If someone wants to make typehinted parameters optional, just use syntax #3.

I really don't see any problem allowing this three syntaxes(but I'm not very
clever since I'm for syntax #1) :-P

Regards,

Cristiano Duarte

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

Reply via email to