Hi!

> Help me understand, b/c I am not clear what you mean by "we allow 
> expressions in function calls".  This is my immediate understanding of 
> the anatomy of a closure:

Function call:

f($a, $b+$c);

Closure:

$x = function ($arg) use($a, $b+$c as $bplusc) {
/*...*/
}

For the same reason we don't want to write first case like this:

$dummyvar = $b+$c;
f($a, $dummyvar);

but actually allow doing $b+$c in the call, we might want to do the same
when we create a closure.

> Having an expression in use() is not immediately clear when that might 
> execute, would it execute at declaration time? Or at call time?  If the 

Declaration time.

> That makes sense, but if you mean this:
> 
>    function do_something($foo->bar()) {}

Closure is a mix of two things - function and scope data. Function part
stays the same, the change proposed is for the scope data. Right now you
can import only variables as scope data, but I don't see why we can't
allow expressions too.

-- 
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227

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

Reply via email to