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

Reply via email to