PHP支持箭头函数语法吗?

Abu*_*urd 21 php arrow-functions

在抱怨function一遍又一遍地写关键字的动荡之后,我向某人询问了一个更简单的方法.该人说PHP将具有类似于es6的箭头函数语法.

const foo = (x, y) => {
    return x + y;
};
Run Code Online (Sandbox Code Playgroud)

在我继续研究这个问题时,我无法在网上找到很多例子.

有合适口径的人可以解释一下吗?

在这一点上,我也非常感兴趣,这将如何适应PHP的OOP方面.

Bil*_*win 26

这似乎是https://wiki.php.net/rfc/arrow_functions中描述的语法.它确实有一个实验性的实现.

在箭头功能提案中,提到它可以替代"短关闭"提案,https://wiki.php.net/rfc/short_closures

截至2018年2月,当前版本的PHP为7.1.4/7.2.2.

我找不到任何一项提案获得批准的确认.前者处于"讨论中"状态,后者是"拒绝/撤回支持http://wiki.php.net/rfc/arrow_functions ".我想现在知道是否会在未来的PHP版本中采用它还为时尚早.

  • 另外,请参阅https://wiki.php.net/rfc/arrow_function_preference - 似乎有一个关于它的RFC即将推出...也许我们终于*终于*有一天会看到它. (2认同)

小智 9

是。新的RFC已被PHP 7.4 https://wiki.php.net/rfc/arrow_functions_v2接受


Đor*_*jić 5

基于 RFC 的PHP 7.4代码可能看起来像

$users->map(
    fn($user) => $user->first_name.' '.$user->last_name
);
Run Code Online (Sandbox Code Playgroud)

代替

$users->map(function($user) {
    return $user->first_name.' '.$user->last_name;
});
Run Code Online (Sandbox Code Playgroud)