On Monday 24 May 2010 12:09:30 am Zeev Suraski wrote:

> I have to say that I don't really see the logic in "either it should
> be identical to PHP's conversion rules or it should be 100.000%
> different (strict)".  Adding strict typing would be the largest
> inconsistency in PHP's core syntax, ever.
> 
> For that reason, I prefer pretty much any variation of the proposed
> solution over strict type checking.
> 
> I see three key options going forward:
> 1.  Implement the table along the lines of what it looks like now,
> perhaps with minor changes.
> 2.  Implement identical conversion rules to the ones that exist in
> PHP; That effectively turns type hinting into scalar casting
> operators (not saying that's a bad thing!)
> 3.  Implement identical conversion rules to the ones that exist in
> PHP, except for when they really suck.  Namely, lose the
> array->scalar conversions and silent conversions of non-numeric
> strings to numbers.
> 
> I personally lean towards #3.
> 
> Zeev

#3 is the one that seems like it would be most useful in practice, with one 
caveat.  If given an input of float(5.4) and a function parameter specified as 
int, there is data loss if you just do the equivalent of (int)$foo so that 
falls into the "really suck" category and should also explode.  (float(5), 
however, has no data loss in that operation so it's safe.)

I don't know if there's performance issues to address with that addition that 
may nix it, but that would be the ideal.

--Larry Garfield

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

Reply via email to