PHP 是否支持箭头函数语法?
2022-08-30 17:05:18
在抱怨一遍又一遍地编写关键字的艰巨任务之后,我向某人询问了一种更简单的方法。该人说PHP将具有类似于es6的箭头函数语法。function
const foo = (x, y) => {
return x + y;
};
当我继续研究这个问题时,我无法在网上找到很多例子。
有合适口径的人可以对此进行阐述吗?
在这一点上,我也非常感兴趣的是这将如何适应PHP的OOP方面。
在抱怨一遍又一遍地编写关键字的艰巨任务之后,我向某人询问了一种更简单的方法。该人说PHP将具有类似于es6的箭头函数语法。function
const foo = (x, y) => {
return x + y;
};
当我继续研究这个问题时,我无法在网上找到很多例子。
有合适口径的人可以对此进行阐述吗?
在这一点上,我也非常感兴趣的是这将如何适应PHP的OOP方面。
2018年2月的原始答案:
这似乎是 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版本中被采用还为时过早。
2019 年 12 月更新:
根据 https://www.php.net/manual/en/migration74.new-features.php
箭头函数提供速记语法,用于使用隐式按值范围绑定定义函数。
<?php $factor = 10; $nums = array_map(fn($n) => $n * $factor, [1, 2, 3, 4]);
但是,在 PHP 手册页面中关于匿名函数的用法尚未更新
下面是一个详细介绍的博客:https://stitcher.io/blog/short-closures-in-php