Re: Re: [RFC-Discuss] Scalar Type Declarations v0.5
| From: | Dmitry Stogov | Date: | Wed, 25 Feb 2015 15:20:29 +0000 |
| Subject: | Re: Re: [RFC-Discuss] Scalar Type Declarations v0.5 | ||
| References: | 1 2 3 4 5 6 7 8 9 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-83796@lists.php.net to get a copy of this message | ||
On Wed, Feb 25, 2015 at 6:06 PM, Anthony Ferrara <ircmaxell@gmail.com>
wrote:
> Dmitry:
>
> On Wed, Feb 25, 2015 at 7:55 AM, Dmitry Stogov <dmitry@zend.com> wrote:
> > On Wed, Feb 25, 2015 at 2:42 PM, Niktia Nefedov <inefedor@gmail.com>
> wrote:
> >
> >> 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 {
> >>> 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 of
foo
> >> will be coerced to
> >> int type when passed to bar by reference.
> >>
> >
> > I think it'll work without errors and produce some explainable but weird
> > output. I didn't run it myself yet.
>
> "Weird"?
>
> int(5)
> string(1) "5"
>
> How is that weird? That's precisely what you asked it to do.
>
I just think that not allbody understand this and expect something
different.
Thanks. Dmitry.