php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #52630 additional syntax for closures
Submitted: 2010-08-17 22:17 UTC Modified: 2015-03-10 21:18 UTC
Votes:5
Avg. Score:4.6 ± 0.8
Reproduced:4 of 4 (100.0%)
Same Version:2 (50.0%)
Same OS:2 (50.0%)
From: giorgio dot liscio at email dot it Assigned: stas (profile)
Status: Closed Package: Variables related
PHP Version: 5.3.3 OS: all
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: giorgio dot liscio at email dot it
New email:
PHP Version: OS:

 

 [2010-08-17 22:17 UTC] giorgio dot liscio at email dot it
Description:
------------
hi, would be nice having this syntax for closures


$this->addResult
(
    (
        function ($param) use ($x) { return $x*$param; }
    )($result)
);

a closure defined and executed in the same instruction, as JavaScript allows



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2010-08-17 22:21 UTC] kalle@php.net
-Assigned To: +Assigned To: stas
 [2010-08-17 22:21 UTC] kalle@php.net
I belive stas' had a patch for this? Or atleast function call chaining, but I assume if implemented it would allow this syntax?
 [2010-08-17 22:41 UTC] giorgio dot liscio at email dot it
any alternative syntax can be good if the result is the same, defining end invoking on the same instruction without using any var

now:

$f = function($x) use($y){return $x * $y;};
$f(22);

request:

(function($x) use($y) {return $x * $y;})(22);

or

function($x) use($y) {return $x * $y;}(22);

or 

function($x) use($y) invoke(22) {return $x * $y;};

etc
 [2010-08-18 01:02 UTC] kalle@php.net
I like the:
function($x) use($y) {return $x * $y;}(22);

approach, its consistent with that of other languages, like JavaScript
 [2010-09-02 00:06 UTC] stas@php.net
-Status: Assigned +Status: Open -Type: Bug +Type: Feature/Change Request
 [2015-03-10 21:18 UTC] nikic@php.net
-Status: Assigned +Status: Closed
 [2015-03-10 21:18 UTC] nikic@php.net
Implemented by https://wiki.php.net/rfc/uniform_variable_syntax in PHP 7. Parentheses around the closure are required.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 25 11:01:30 2024 UTC