I think E_WARNING would be appropriate. That's what happens when you
omit an argument to a function right?

And about function return type hinting, I don't think it would be as
useful as parameter type hinting, but it would be useful. Mostly for
stuff like declaring an abstract function in a parent class that must
return a certain type.

class a {
        abstract public function getNumber() returns int ;
}
class b extends a {
        public function getNumber() {
                return rand() * 3463 ;
        }
}
class c extends a {
        public function getNumber() {
                return 'I\'m going to mess everything up by returning a
string.' ; //
Would cause error with type hinting.
        }
}

On Thu, 2008-01-03 at 19:03 +0200, Tomi Kaistila wrote:
> Hello everyone
> 
> I figured I would bring my opinion in to support of Sam's request for
a more 
> complete type hinting feature. Namely I am interested in the support
for 
> hinting scalar types on function and method arguments and I am sure it
is 
> safe for me to say that I speak for a lot of people. Most people that
I know 
> find the current type hinting, while useful, ridiculous because it
looks like 
> the job was left unfinished for whatever abstract reason.
> 
> In my opinion type hinting should definitely be allowed for scalar
values. As 
> for return types, I am not so sure. So far I have found no use for
such a 
> feature in my own code, so I won't comment on it. If it is added, I
welcome 
> it for those who find it useful but if it is not added I will not
loose sleep 
> over it.
> 
> > I was thinking at something along the lines of objects also for
instance:
> > $i = new Integer(33); 
>  After my own experiments with the subject I concur that while it can
be made 
> to work, it is not only a bad idea (for the reasons mentioned earlier)
it is 
> also redundant and just unnecessary. There is a lot better way to
accomplish 
> the same and that by allowing scalar values to be hinted. It is
simpler, 
> cleaner, and easier to implement.
> 
> > What if type hinting just generated an E_NOTICE. Nothing more for
the
> > time being.
>  Changing it to E_NOTICE or E_STRICT defeats the purpose somewhat
since if I 
> write a piece of code that hints that the argument for a-whatever
method 
> needs to be an integer it seems useless if the user of my library can
avoid 
> the issue just by supressing lesser errors and those who do not need
to write 
> extensive error handling code to respond to this sort of error (if
they 
> indeed deem it necessary to do so).
> 
> While hinting is, and should remain, optional, when it is used it
should be 
> enforced. After all the user of my library has the option to dump it
and go 
> for another library that does not force types. That is the beauty of
having 
> options.
> 
> Tomi Kaistila
> PHP Developer
> 
On Thu, 2008-01-03 at 19:03 +0200, Tomi Kaistila wrote:
> Hello everyone
> 
> I figured I would bring my opinion in to support of Sam's request for a more 
> complete type hinting feature. Namely I am interested in the support for 
> hinting scalar types on function and method arguments and I am sure it is 
> safe for me to say that I speak for a lot of people. Most people that I know 
> find the current type hinting, while useful, ridiculous because it looks like 
> the job was left unfinished for whatever abstract reason.
> 
> In my opinion type hinting should definitely be allowed for scalar values. As 
> for return types, I am not so sure. So far I have found no use for such a 
> feature in my own code, so I won't comment on it. If it is added, I welcome 
> it for those who find it useful but if it is not added I will not loose sleep 
> over it.
> 
> > I was thinking at something along the lines of objects also for instance:
> > $i = new Integer(33); 
>  After my own experiments with the subject I concur that while it can be made 
> to work, it is not only a bad idea (for the reasons mentioned earlier) it is 
> also redundant and just unnecessary. There is a lot better way to accomplish 
> the same and that by allowing scalar values to be hinted. It is simpler, 
> cleaner, and easier to implement.
> 
> > What if type hinting just generated an E_NOTICE. Nothing more for the
> > time being.
>  Changing it to E_NOTICE or E_STRICT defeats the purpose somewhat since if I 
> write a piece of code that hints that the argument for a-whatever method 
> needs to be an integer it seems useless if the user of my library can avoid 
> the issue just by supressing lesser errors and those who do not need to write 
> extensive error handling code to respond to this sort of error (if they 
> indeed deem it necessary to do so).
> 
> While hinting is, and should remain, optional, when it is used it should be 
> enforced. After all the user of my library has the option to dump it and go 
> for another library that does not force types. That is the beauty of having 
> options.
> 
> Tomi Kaistila
> PHP Developer
> 

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

Reply via email to