On 10/01/2008, Marcus Boerger <[EMAIL PROTECTED]> wrote:
> Hello Ryusuke,
>
>   +1, looks pretty nice, makes my life easier in some cases and is closer to
>   other languages like pythin so i can transfer concepts easily which is a
>   big plus for me.
>
> marcus
>
> Thursday, January 10, 2008, 11:09:26 AM, you wrote:
>
> > Hello, lists,
>
> > We have discussed about implementing anonymous functions and
> > closures in PHP.
> > However, I consider that implementing anonymous functions and
> > implementing lexical scopes should be discussed separately.
> > # Even though I like closure.
> > So I wrote anonymous function patch for PHP 5.3 and 6.0.
>
>
> > Patches (inlcude tests):
> > for PHP 5.3: http://www.opendogs.org/pub/php-5.3dev-080109-anon.patch
> > for PHP 6.0: http://www.opendogs.org/pub/php-6.0dev-080109-anon.patch
>
>
> > Featues:
> > - Unlike create_function(), there is no need to take care of
> >   quotes, backslashes and dollars .
> > - Can be used in loop, but be compiled only once.
> > - Supports recursive call using __FUNCTION__.
> > - Supports inline execution. It works like a block scope.
> > - Works with opcode caches.
> >   Since I couldn't build APC against PHP 5.3, I have tested
> >   PHP 5.2.5 + anonymous function patch and APC 3.0.16.
>
>
> > Example:
> > <?php
> > // callback
> > $arr = array(5, 3, 6, 0);
> > usort($arr, function($a, $b){ return $a - $b; });
> > print_r($arr); // 0, 3, 5, 6
>
> > // assign to a variable
> > $lambda = function(){
> >   echo "Hello, World!\n";
> > };
> > $lambda(); // "Hello, World!"
>
> > // inline execution
> > $result = function($a, $b){
> >   return $a + $b;
> > }(1, 2);
> > var_dump($result); // "int(3)"
> ?>>
>
>
> > The anonymous function name is composed of '\0', "ZEND_ANON<#serial>",
> > filename and character position.
> > - Leading '\0' blocks to be displayed by get_defined_functions().
> > - "ZEND_ANON<" helps determine wheter the function is anonymous or not
> >   because '<' cannot be used for user-defined function name.
> > - Serial number and file informations make the name unique.
> > - char anon_key_buf[32] is long enough because
> >   `snprintf(anon_key_buf, 32, "ZEND_ANON<%llu>", (unsigned long
> > long)UINT64_MAX)'
> >   returns 31.
>
>
> > Regards,
>
>
> > 2008/1/6, Marcus Boerger <[EMAIL PROTECTED]>:
> >> Hello Stanislav,
> >>
> >>   tha makesw three then already, how about we ask around again?
> >> Ryusuke, can you please start a new '[RFC] Square brackets shortcut' thread
> >> to collect opinions and pass along the patch for that?
> >>
> >> I like the anonymous function patch too. It is clean and simple. Maybe you
> >> want to start a second '[RFC] Anonymous functions' thread with that patch.
> >>
> >> Can you also please add tests for both?
> >>
> >> marcus
> >>
> >> Wednesday, January 2, 2008, 7:51:06 PM, you wrote:
> >>
> >> >> the square bracket array syntax patch for PHP 5.3,
> >> >>   http://www.opendogs.org/pub/php-5.3dev-080101-sbar.patch
> >>
> >> > I remember we discussed that already and it was rejected then (even
> >> > though myself and Andi liked it) - did the people that objected then
> >> > change their minds?
> >>
> >>
> >>
> >> Best regards,
> >>  Marcus
> >>
> >>
>
>
> > --
> > /**
> >  * Ryusuke SEKIYAMA
> >  * [EMAIL PROTECTED]
> >  */
>
>
>
>
> Best regards,
>  Marcus
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

A nice feature. Especially for array callbacks.





-- 
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"

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

Reply via email to