Re: Re: [RFC-Discuss] Scalar Type Declarations v0.5
| From: | Niktia Nefedov | Date: | Wed, 25 Feb 2015 12:15:00 +0000 |
| Subject: | Re: Re: [RFC-Discuss] Scalar Type Declarations v0.5 | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-83783@lists.php.net to get a copy of this message | ||
On Wed, 25 Feb 2015 16:55:57 +0400, Dmitry Stogov <dmitry@zend.com> wrote:
On Wed, Feb 25, 2015 at 2:42 PM, Niktia Nefedov <inefedor@gmail.com> wrote:Yep, you're right. But it's not a problem of mixed-mode, it's more of a problem of introducing coercive type hints at all, honestly... I wonder what Zeev plans to do with __toString coercion in his RFC, because that is even more severe problem when your object unnoticedly becomes a string.On Wed, 25 Feb 2015 16:30:32 +0400, Dmitry Stogov <dmitry@zend.com> wrote:I think it'll work without errors and produce some explainable but weird output. I didn't run it myself yet.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 { bar($a); return $a; } ?> b.php ===== <?php declare(strict_types=1) function bar(int &$a) { var_dump($a); } ?> Thank. Dmitry.Hi Dmitry, This will error out because $a in the scope offoowill be coerced to int type when passed to bar by reference.