Re: type hinting
| From: | Robert Cummings | Date: | Fri, 04 Jan 2008 17:48:28 +0000 |
| Subject: | Re: type hinting | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-34426@lists.php.net to get a copy of this message | ||
On Fri, 2008-01-04 at 12:41 -0500, Sam Barrow wrote:
> On Fri, 2008-01-04 at 12:37 -0500, Robert Cummings wrote:
> > On Fri, 2008-01-04 at 18:23 +0100, Pierre wrote:
> > > On Jan 4, 2008 6:20 PM, Marcus Boerger <helly@php.net> wrote:
> > > > Hello Pierre,
> > > >
> > > > we never accepted this as a pro argument. Infact we often saw the
> > > > necessaity to highlight something is optional to vote against it. We do this
> > > > for a reason. That is we only want to support mainstream features.
> > >
> > > My point of view is that this feature should be a mainstream feature.
> > > To make it optional was to lower the issues for those who don't care
> > > about argument strictness. We did not give them this choice for the OO
> > > strictness.
> >
> > IMHO, optionally inclusion of type hinting for functions/methods can
> > only be a boon to code quality and readability. IMHO when a type hint is
> > provided and a parameter doesn't match the type hint then I think a
> > fatal error should occur. This forces the user of the function that has
> > type hinting to ensure their data is of the correct type. This prevents
> > accidental wrong data conversion. However, I see the other side of the
> > coin too where automatic type conversion could be desirable also.
> > Perhaps a mixed solution would be viable?
> >
>
> I don't think conversion would make sense here, as PHP will
> automatically convert the variable before you use it anyway. Hinting
> will prevent mistakes, conversion will just try to ignore them, which is
> what PHP does already.
I think that depends on what I do with the variable. PHP doesn't know
how I intend to use it, and if I know I want an int and I don't want to
test for browserland garbage in my variable everytime the function is
called, then an automatic type conversion to int for my function can
make perfect sense. Yes, I could force the developer using my function
to cast the parameter as an int, but I'm certain conversion in the
engine without a userland cast is faster, and it makes it more
convenient to the consumer of my function since they can still treat it
like a classic function.
Cheers,
Rob.
--
...........................................................
SwarmBuy.com - http://www.swarmbuy.com
Leveraging the buying power of the masses!
...........................................................