这句话在php
中是什么意思,
PHP supports first-class functions
谁能简单解释一下,我看文档的时候好像没看懂。
我会很感激一个例子。
最佳答案
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/