PHP支持一流的函数,是什么意思

标签 php function first-class-functions

这句话在php中是什么意思,

PHP supports first-class functions

谁能简单解释一下,我看文档的时候好像没看懂。

我会很感激一个例子。

最佳答案

Wikipedia :

This means the language supports passing functions as arguments to other functions, returning them as the values from other functions, and assigning them to variables or storing them in data structures.

最初您可以将函数作为字符串或数组分配给变量:

$aFunction = 'someFunctionName';
$aFunction();
$aMethod = [$object, 'someMethodName'];
$aMethod();

您可能会在旧源代码中看到它。它是对函数/方法的间接引用(通过其名称)。当前的 PHP 提供了更好的方法。您可以将匿名函数直接分配给变量:

$aFunction = function(...$arguments) {
  var_dump($arguments);
};
$aFunction();

或者在类中实现魔术方法'__invoke()':

class A {
  public function __invoke(...$arguments) {
    var_dump($arguments);
  }
}

$aFunction = new A();
$aFunction(1, 2);

在 PHP 7.4 中添加了简单表达式的快捷函数:

$aFunction = fn(...$arguments) => var_dump($arguments);
$aFunction(1, 2);

关于PHP支持一流的函数,是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59292636/

相关文章:

php - 如何简单地爆炸(d.m.Y H :i) using Php

c++ - 从给定点获取N个随机等距点

lua - 脱糖 Lua 运算符

javascript - 不理解 Node.js 示例中一级函数和 csv 模块事件的用法

php - Linux 上 LiteSpeed Web 服务器中文件的正确路径

php - 如何通过邮件发送从数据库中获取的数据

php - 从 delphi 生成 php - 有人做过吗?

c++ - 比较成员函数的 std::function

function - Dymola getExperiment() 访问