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: >> Dmitry Stogov wrote: >>> >>> >>> Marcus Boerger wrote: >>>> Hello Dmitry, >>>> >>>> Monday, August 4, 2008, 8:55:00 AM, you wrote: >>>> >>>>> Hi Marcus, >>>> >>>>> see below >>>> >>>>> Marcus Boerger wrote: >>>>>> 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) >>>> >>>> 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. >>>> >>> >>> 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. >> >> I don't think there are many differences in ambiguity between >> >> $closure = function ($arg) { use $a; >> ... >> }; >> >> and >> >> $closure = function ($arg) use ($a) { >> }; >> >> Moriyoshi >> Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php