Tired of writing anonymous functions syntax every time when you just need to pass a callback or closure? Not only the standard long syntax is confusing but it’s also hard to read and understand. Well it’s your lucky day, the short syntax is on the way to be in release code of PHP 7.4!
Generally speaking the the new form would look like:
fn(parameter_list) => expr
A sample syntax of:
function array_values_from_keys($arr, $keys) { return array_map(function ($x) use ($arr) { return $arr[$x]; }, $keys); }
Will be replaced in PHP 7.4 by:
function array_values_from_keys($arr, $keys) { return array_map(fn($x) => $arr[$x], $keys); }
Same as in normal closures, the $this
variable, the context and the LSB scope will be automatically bind when a short closure is created inside a class method. For standard closures, this can be prevented by prefixing them with word: static
.
The function signature is:
fn(array $x) => $x; fn(): int => $x; fn($x = 42) => $x; fn(&$x) => $x; fn&($x) => $x; fn($x, ...$rest) => $rest;
Reference
PHP 7 News & Updates v7.0 – 7.4 Book https://www.amazon.com/PHP-News-Updates-v7-0-7-4/dp/1727202481/