PHP 闭包作为可选函数参数

2022-08-31 01:08:38

当参数是 PHP 闭包时,是否可以指定默认参数值?喜欢:

public function getCollection($filter = function($e) { return $e; })
{
    // Stuff
}

我是否错过了一些东西(也许是不同的语法?)或者根本不可能?当然我知道我可以做到:

public function getCollection($filter = null)
{
    $filter = is_callable($filter) ? $filter : function($e) { return $e; };
    // Stuff
}

(注意:我没有测试上面的代码)


答案 1

默认参数只能是“标量参数”、数组或 NULL。

PHP 中的“标量值”是数字、字符串和布尔值。

如果您希望函数成为默认参数,则需要使用第二种方式,第一种方式是语法错误。


答案 2

推荐