kik*_*yu1 3 php function first-class-functions
这句话是什么意思php,
PHP 支持一流的函数
谁能简单解释一下,我在阅读文档时似乎不明白。
我希望有一个例子。
维基百科:
这意味着该语言支持将函数作为参数传递给其他函数,将它们作为其他函数的值返回,并将它们分配给变量或将它们存储在数据结构中。
最初,您可以将函数作为字符串或数组分配给变量:
$aFunction = 'someFunctionName';
$aFunction();
$aMethod = [$object, 'someMethodName'];
$aMethod();
Run Code Online (Sandbox Code Playgroud)
您可能会在旧源中看到这一点。它是对函数/方法的间接引用(通过其名称)。目前PHP提供了更好的方法。您可以将匿名函数直接分配给变量:
$aFunction = function(...$arguments) {
var_dump($arguments);
};
$aFunction();
Run Code Online (Sandbox Code Playgroud)
或者在类中实现魔术方法“__invoke()”:
class A {
public function __invoke(...$arguments) {
var_dump($arguments);
}
}
$aFunction = new A();
$aFunction(1, 2);
Run Code Online (Sandbox Code Playgroud)
在 PHP 7.4 中添加了简单表达式的快捷函数:
$aFunction = fn(...$arguments) => var_dump($arguments);
$aFunction(1, 2);
Run Code Online (Sandbox Code Playgroud)