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



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

PHP 支持一流的函数

谁能简要解释一下,我在阅读文档时似乎不明白。

我将不胜感激一个例子。

维基百科:

这意味着该语言支持将函数作为参数传递给 其他函数,将它们作为其他函数的值返回, 并将它们分配给变量或将它们存储在数据结构中。

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

$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函数可以被视为变量。 它们可以保存,作为参数传递给函数等等。

例如:

$square = fn(int $a) => $a**2;
echo (fn($func) => $func(3))($square);

最新更新