PHP支持箭头函数语法吗?

时间:2018-02-05 07:09:02

标签: php arrow-functions

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

const foo = (x, y) => {
    return x + y;
};

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

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

此时,我也非常感兴趣这将如何适应PHP的OOP方面。

3 个答案:

答案 0 :(得分:23)

这似乎是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版本中被采用还为时尚早。

答案 1 :(得分:4)

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

接受

答案 2 :(得分:0)

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

$users->map(
    fn($user) => $user->first_name.' '.$user->last_name
);

代替

$users->map(function($user) {
    return $user->first_name.' '.$user->last_name;
});