Hi Andrea

> -----Ursprüngliche Nachricht-----
> Von: Andrea Faulds [mailto:a...@ajf.me]
> Gesendet: Mittwoch, 14. Januar 2015 01:17
> An: PHP Internals List
> Betreff: [PHP-DEV] [RFC] Scalar Type Hints v0.2
> 
> Good evening,
> 
> I’ve made some quite significant changes to my Scalar Type Hints RFC, and 
> bumped its version to 0.2.
> 
> Here: https://wiki.php.net/rfc/scalar_type_hints
> 
> This is a new thread because I’ve made a significant revision to the RFC, so 
> it’d be sensible to separate discussion of the
> updated RFC from the v0.1 RFC.
> 
> Please tell me your thoughts.
> 
> Thanks!
> --
> Andrea Faulds
> http://ajf.me/
> 
> --
> PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: 
> http://www.php.net/unsub.php

I had a few thoughts on the new proposed declare(strict_typehints=TRUE); 
construct and I must say I do not really like that we would have different 
behaviour just based on a directive. This is quite ugly from a readability 
point of view since I as user cannot easily see whether somewhere (above) in 
the code the directive was set (I have changed my mind a little bit below - 
left it here for traceability purposes). Which brings me to the question what 
happens with the following code:

function foo(int $a){}  //is weak right?
declare(strict_typehinting=TRUE);


I guess it is weak since you wrote: "If this boolean value is TRUE, strict 
type-checking mode is used for function calls in the remainder of the file"
Maybe it is a good idea to add such an example to the examples as well.

Now, having rethought my own email, I think we should enforce some code style 
to avoid a huge mess. Why not declare that the directive needs to be the very 
first statement inside a namespace scope (unless the directive block syntax is 
used). This way it would be easily verifiable for the user if strict mode is in 
place or not. But then again, we could also argue that is up to code 
conventions/code guidelines and they should specify whether mixing both modes 
is ok and where the directive has to be placed. So re-rethinking what I just 
wrote I would say it is fine as it is now but we should at least consider if we 
want to enforce some code practice to avoid a mess.

Now another point: "Whether or not the function being called was declared in a 
file that uses strict or weak type checking is entirely irrelevant. The type 
checking mode depends on the file where the function is called."
Seems quite strange to me but fair enough, why not -- actually makes perfectly 
sense for this RFC -> leaving it to the user to decide what he/she likes :-) 


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

Reply via email to