-
Notifications
You must be signed in to change notification settings - Fork 0
Arrow functions
Timm Friebe edited this page Mar 6, 2021
·
6 revisions
Arrow functions are shorter than function expressions and automatically capture variables from the containing scope without the need for an explicit use
clause.
fn(param1, param2, …, paramN) => expression
fn(param1, param2, …, paramN) => { statements }
// Empty parameter lists are expressed by a pair of parentheses
fn() => expression
fn() => { statements }
// Return types can be added
fn(param1, param2, …, paramN): returnType => expression
fn(param1, param2, …, paramN): returnType => { statements }
Arrow functions allow for shorter and more concise syntax.
$materials->map(function($m) { return $m->length(); });
$materials->map(fn($m) => $m->length());
As in function expressions, parameters can be typed:
$connect= fn(Uri $uri) => new HttpConnection($uri);
Unlike function expressions, variables from the enclosing scope are automatically captured. Note that all variables are captured by value. If you wish to capture by reference, you'll need to use a function expression.
- Hack lambdas: The ==> operator and introduction
- PHP RFC: Arrow functions