On Mon, Feb 2, 2015 at 9:41 PM, Robert Stoll <[email protected]> wrote:
> Hi Dimitry,
>
> > -----Ursprüngliche Nachricht-----
> > Von: Dmitry Stogov [mailto:[email protected]]
> > Gesendet: Montag, 2. Februar 2015 10:13
> > An: PHP Internals; Andrea Faulds; Nikita Popov
> > Betreff: [PHP-DEV] What do we need strict scalar type hints for?
> >
> > hi,
> >
> > could you please write down few use cases, when strict scalar type hints
> are really useful.
> >
> > Thanks. Dmitry.
>
> I think strict types are beneficial in all those places where you would
> put manual tests to ensure that the passed value is of a certain type and
> only of this type - removing the hassle (ok, I did not add anything to the
> discussion so far ^^). Right now, I mainly think of functions which expect
> an int - especially in the domain of time and money. I would expect an int
> and I would not want that a float can be passed without warning and get
> silently converted to an int (loosing precision in the domain of time or
> money can be crucial).
>
However, IMO it is not necessary to have a strict mode as presented by
> Andrea -- I think it would be good enough if we use the same widening rules
> as in Java, C# etc. and be strict otherwise. I am aware of that with the
> support of BigInteger we would have a widening problem (BigInteger to
> float) but could be solved by a BigDecimal as in Clojure.
>
> Ah... I now something I would definitely want to be strict. I guess a
> typical bug, which is made by many beginners, is using the result of strpos
> in an if statement without using the identity operator -- btw. would the
> strict mode affect operators and control structures as well?
no. now we speak only about parameter and return value type hints.
> Would somehow be the logical consequence but I suppose the impact on
> performance would be too big. Or wouldn't it?
>
it wouldn't reduce performance. may be even increase, but it'll break every
second app.
> Back to the topic, if I expect a bool as parameter I would definitely not
> want it to be automatically converted since this is a sink for bugs.
>
I'm not sure. If we would work on a type-safe language I would definitely
agree, but PHP is a "loosely typed language" by definition.
Thanks. Dmitry.
>
> Hope that helps.
>
> Cheers,
> Robert
>
>
>
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>