Re: Re: [RFC-Discuss] Scalar Type Declarations v0.5

From: Date: Wed, 25 Feb 2015 15:06:31 +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-83790@lists.php.net to get a copy of this message
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.

« previous php.internals (#83790) next »