> From: Andrea Faulds [mailto:a...@ajf.me]
> Sent: Thursday, February 12, 2015 1:45 PM
> To: Pavel Kouřil
> Cc: guilhermebla...@gmail.com; Zeev Suraski; Rasmus Lerdorf; PHP
> Internals
> Subject: Re: [PHP-DEV] [VOTE] Scalar Type Hints
>
> Hi,
>
> > On 12 Feb 2015, at 07:05, Pavel Kouřil <pajou...@gmail.com> wrote:
> >
> > On Thu, Feb 12, 2015 at 1:13 AM, Andrea Faulds <a...@ajf.me> wrote:
> >>
> >> A number (or numeric, or num, or some other name) type hint is
> something I plan to propose in a future, follow-up RFC.
> >>
> >
> > wouldn't polymorphism (via method overloading) solve the use cases and
> > be much more useful in the long run than introducing a something
> > that's not a type into type hints?
>
> PHP already has polymorphism through its dynamic typing. I don’t see
> method overloading happening any time soon. We have optional parameters
> and dynamic typing, which all but eliminate the main needs for
> overloading.
> We’re a weakly-typed language, so overloading on scalar types might cause
> unpredictable behaviour (with strict types you’d get an error sometimes,
> and
> that’s fine - but calling an entirely different function? Now that’s
> different.)
> There’s also the question of how, or if at all, method overloading could
> interact with our optional parameters and dynamic typing. Finally,
> overloading can lead to really poor API design: it’s not that uncommon in
> some languages to see 20 different function definitions with overlapping
> and
> non-comprehensive subsets of a method’s behaviour, that are distinguished
> only by parameter types. It’s one of my least favourite Java/C#/C++
> features
> for that reason.
>
> In response to saying numbers are not a type: well, they are more of an
> abstract type which integer and float subclass. We already have internal
> facilities for converting to and from “numbers” alongside integers and
> floats,
> I don’t see why we can’t expose this to users.

+1

Zeev

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

Reply via email to