Re: Re: [RFC-Discuss] Scalar Type Declarations v0.5
| From: | Niktia Nefedov | Date: | Wed, 25 Feb 2015 11:42:11 +0000 |
| Subject: | Re: Re: [RFC-Discuss] Scalar Type Declarations v0.5 | ||
| References: | 1 2 3 4 5 6 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-83777@lists.php.net to get a copy of this message | ||
On Wed, 25 Feb 2015 16:30:32 +0400, Dmitry Stogov <dmitry@zend.com> wrote:
anyone may tell, what this will print without running :) main.php ======== <?php declare(strict_types=1) include "a.php"; include "b.php"; var_dump(foo("5")); ?> a.php ===== <?php declare(strict_types=0) function foo(string $a): string {Hi Dmitry, This will error out because $a in the scope ofbar($a); return $a;} ?> b.php ===== <?php declare(strict_types=1) function bar(int &$a) {var_dump($a);} ?> Thank. Dmitry.
foo will be coerced to int type when passed to bar by reference.
References are a problem for weak-only types as well (even more so I would say, because in a lot of cases they would continue working truncated or changed).
Happily there are not lots of post-php5 code that uses references here and there, but that would be good to add the point about them to both RFCs (and in documentation in future) just so that users would be aware of that.