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? Would somehow be the logical 
consequence but I suppose the impact on performance would be too big. Or 
wouldn't it?
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. 

Hope that helps.

Cheers,
Robert





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

Reply via email to