Re: Inconsistencies in 5.3
| From: | Dmitry Stogov | Date: | Tue, 05 Aug 2008 11:28:32 +0000 |
| Subject: | Re: Inconsistencies in 5.3 | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-39663@lists.php.net to get a copy of this message | ||
Of course not, but it will be very hard to understand difference and fix parser conflicts.
Thanks. Dmitry.
Marcus Boerger wrote:
Hello Dmitry, Tuesday, August 5, 2008, 8:38:07 AM, you wrote:Allowing "use" inside function body assuming allowing it everywhere.$x = function($arg) {if ($arg) { use $a; } else { use $b; } };I don't like such ability and of course we won't be able to use "use" keyword as it will conflict with import statement.So the import statement use can be placed inside the body of a function as an expression?Moriyoshi Koizumi wrote:Best regards, MarcusDmitry Stogov wrote:Marcus Boerger wrote:I don't think there are many differences in ambiguity between $closure = function ($arg) { use $a; ... }; and $closure = function ($arg) use ($a) { }; MoriyoshiHello Dmitry, Monday, August 4, 2008, 8:55:00 AM, you wrote:No. The list of lexical variables is a part of the closure definition. The earlier implementation had "lexical" keyword which worked as you are suggesting, but it was much unclear.Hi Marcus, see below Marcus Boerger wrote:To be clear, I wasn't complaining about the keyword per se. I just prefer it to be inside the curly braces of a closure next to global rather than in front of it.Hello Internals, please let's not introduce new inconsistencies. Rather lets make new stuff consistent with old stuff during the alpha phase of 5.3. 1) new keyword 'use'. Semantically it is the same as 'static' or 'global' so it should be used in the same location.For me 'use' is the best keyword as it says that closure uses variables from current content. (the same keyword is used for import from namespaces)