On Mon, Feb 2, 2015 at 9:41 PM, Robert Stoll <p...@tutteli.ch> wrote:
> Hi Dimitry, > > > -----Ursprüngliche Nachricht----- > > Von: Dmitry Stogov [mailto:dmi...@zend.com] > > 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 > >