On Fri, 2008-06-20 at 10:50 -0500, Larry Garfield wrote: > On Fri, 20 Jun 2008 16:33:08 +0200, Alexander Wagner <[EMAIL PROTECTED]> > wrote: > > On Friday 20 June 2008, Larry Garfield wrote: > >> > function ($x, $y) use ($a, $b, &$c) {}; > >> > >> I am not sure if "use" is the clearest word to use there (wouldn't > > lexical > >> there make more sense?) > > > > I agree. "use" for both namespaces and closures may not be a good idea. > > Otherwise +1 to this syntax for its low WTF-factor. > > Look like parameters. Behave like parameters. > > > > Also, allowing this for regular function definitions might be a nice > > long-term > > replacement for global. > > Totally silly idea: > > function foo($a, $b, &$c) global ($d, &$e) { > // ... > } > > $myfunc = lambda($a, $b, &$c) lexical ($d, &$e) { > // ... > } > > That puts all the information in the declaration line with parallel syntax > and semantics, and would even allow both by-val and by-ref usage for both > lexical and global values. The following would then be exactly equivalent > functionality-wise: > > function foo() global (&$a) { > // ... > } > > function foo() { > global $a; > // ... > } > > Is that too crazy an idea?
I like that, and also like the parenthesis on both parameter listings for greater readability. In a related question, would the following be a natural extension? $myfun = lambda($a, $b, &$c) lexical ($d, &$e) global ($f, &$g){ // ... } Cheers, Rob. -- http://www.interjinn.com Application and Templating Framework for PHP -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php