On Sun, 2008-01-06 at 15:59 +0100, Magnus Määttä wrote:
> On Sunday 06 January 2008, Alain Williams wrote:
> > On Sun, Jan 06, 2008 at 01:02:54PM +0100, Stefan Esser wrote:
> > > Hello Alain,
> > > 
> > > I think you are also confused about PHP type hinting...
> > > 
> > > The manual clearly states:
> > > 
> > > 
> > >     > Type Hinting
> > > 
> > > > PHP 5 introduces Type Hinting. Functions are now able to force
> > > parameters to be objects (by specifying the name of the class in the
> > > function prototype) or arrays (since PHP 5.1).
> > > 
> > > And suddenly you want to change that definition to
> > > 
> > > "Functions are now able to force parameters to be types that *could be
> > > casted* to objects/arrays."
> > > 
> > > That is not going to happen. Type hints are supposed to force parameter
> > > to be of a specific type. Any kind of auto conversion would redefine
> > > type hinting and would be just another feature that gives PHP haters a
> > > reason to rant about.
> > > And if you want that '1' is allowed to be passed as parameter (without
> > > an actual int cast) because it COULD BE CASTED to int then you gain
> > > ABSOLUTELY nothing from the type hint. Then you don't need to introduce
> > > them at all.
> > 
> > No - you have misunderstood me. The actual cast IS part of the proposal.
> > 
> > My mail showing how the checking works might have not be clear on the cast
> > part - I was talking about the checking -- which has to happen before a 
> > cast.
> > The point that I was trying to make is that the VALUE is preserved. Within
> > the function type juggling may still happen, allowing an int to be used
> > as a string (or whatever).
> 
> This would only be confusing and not anything like the original proposal, or
> anything that I would support or have any use of.
> 
> Type hinting should force the type, not cast it to the type specified. This
> proposal is about forcing types and I'm sure pretty much everyone would
> expect a type-hinted param to be of a forced type, not converted, like every
> other language I've ever used.

This was the intention I had when I wrote the patch. Automatic type
casting would go against the rules of array/class type hints, and
require a completely new patch.

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

Reply via email to