Hi Marcus,

In case you really like this syntax, you can try to implement patch and propose it to @internals.

I don't like it just because it seems wrong for me, so personally I'll object your patch.

Thanks. Dmitry.

Marcus Boerger wrote:
Hello Dmitry,

Tuesday, August 5, 2008, 1:28:32 PM, you wrote:

Of course not, but it will be very hard to understand difference and fix parser conflicts.

How is that hard? we have top_statement and inner_statement in our
parser...problem solved.

Ha, i actually just learned this way that we support inner functions, tsk.

marcus

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:
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





Best regards,
 Marcus


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to