Re: [RFC] Anonymous functions

From: Date: Mon, 24 Mar 2008 13:03:01 +0000
Subject: Re: [RFC] Anonymous functions
References: 1 2 3 4 5 6 7 8 9  Groups: php.internals 
Request: Send a blank email to internals+get-36422@lists.php.net to get a copy of this message
Hello Alexey, my last update on this was that people were unhappy with closures. If that is not the case than maybe we need to write this as an RFC on the wiki: http://wiki.php.net/rfc So well maybe you're right and it only requires selecting between the two and checking whether there are tiny parts missing. marcus Monday, March 24, 2008, 10:21:57 AM, you wrote: > On 3/23/08, Marcus Boerger <helly@php.net> wrote: >> Hello Ryusuke, >> >> I have put your proposal as a link to a PHP GSoC 2008 idea here: >> http://wiki.php.net/gsoc/2008 >> >> Feel invited to add to this idea in whatever way you want :-) > how is it related to gsoc? > patches are already there — all we need is to decide which one is > better, and what needs to be fixed. no? >> >> marcus >> >> >> Saturday, February 23, 2008, 7:46:34 PM, you wrote: >> >> > 2008/2/24, Andrei Zmievski <andrei@gravitonic.com>: >> >> Do we have a working patch somewhere then? >> >> > Hi, I have added support for closures to my patches. >> >> > http://www.opendogs.org/pub/php-5.3-080223-anon.patch >> > http://www.opendogs.org/pub/php-6.0-080223-anon.patch >> > http://www.opendogs.org/pub/php-anon-tests-080223.tgz >> >> > Example: >> > <?php >> > function get_counter($i = 0) >> > { >> > /** >> > * 'static' modified anonymous function's >> > * uninitialized (or null) static variables >> > * are copied from the declared scope. >> > */ >> > return static function(){ >> > static $i; >> > return ++$i; >> > }; >> > } >> >> > $c1 = get_counter(); >> > $c2 = get_counter(100); >> > var_dump($c1(), $c2()); >> > var_dump($c1(), $c2()); >> > var_dump($c1(), $c2()); >> ?>> >> >> > For recursive calling of anonymous functions and closures, >> > added function get_current_function_key(). >> >> > <?php >> > $f = function($i = 0) >> > { >> > echo "$i "; >> > if (++$i > 10) { >> > return; >> > } >> > $f = get_current_function_key(); >> > $f($i); >> > }; >> >> > $f(); >> ?>> >> >> >> > And here is a Zend extension for PHP 5.2 which enables >> > anonymous functions, closures and square bracket arrays. >> >> > http://www.opendogs.org/pub/php_qiq-0.1.0pre.tgz >> >> > This has a few more features, but, at present, there is >> > no document... >> >> >> > Regards, >> >> >> >> >> >> Best regards, >> >> Marcus >> >> >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> Best regards, Marcus

« previous php.internals (#36422) next »