Hi Andrea
> -----Ursprüngliche Nachricht-----
> Von: Andrea Faulds [mailto:[email protected]]
> 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