Re: PATCH: anonymous functions in PHP

From: Date: Tue, 20 Mar 2007 14:24:32 +0000
Subject: Re: PATCH: anonymous functions in PHP
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-28483@lists.php.net to get a copy of this message
Richard Lynch wrote:
On Mon, March 19, 2007 3:35 pm, Robert Cummings wrote:
On Mon, 2007-03-19 at 15:20 -0500, Richard Lynch wrote:
On Sun, March 18, 2007 6:41 pm, Wez Furlong wrote:
We've been daydreaming about the ability to do something like this
in
PHP: $data = array("zoo", "orange", "car", "lemon", "apple"); usort($data, function($a, $b) { return strcmp($a, $b); }); var_dump($data); # data is sorted alphabetically
I'd LOVE it if there was SOME difference between this and a normal 'function' definition... I guess we're kind of stuck with 'create_function' being the mess that it is. But perhaps something like 'temp_function' or 'local_function' or 'lexical_closure' or something similar. Even 'horse' [*] would be fine by me. I think it muddies things too much to have it just be 'function' with no name after it. +1
A function with a name is no longer anonymous ;)
I am not suggesting that there be a name. I am suggesting that the reserved keyword for an anonymous function should not be 'function', the same as a normal function.
I don't have anything against 'function', I think JS uses the same syntax - function without a name. If you change it to something different, e.g 'callback', then you loose the information that it is actually a function $error_func = callback($msg) { file_put_contents('php://stderr',"Error: $msg\n"); } vs. $error_func = function($msg) { file_put_contents('php://stderr',"Error: $msg\n"); } The second one looks better for me.

« previous php.internals (#28483) next »