PHP闭包作为可选函数参数

16

当参数是 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个回答

18

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

在 PHP 中,"标量值" 包括数字、字符串和布尔值。

如果您想要将函数作为默认参数,那么必须使用第二种方式,否则会出现语法错误。


哦,我明白了。所以我的问题是无用的。不管怎样,还是谢谢。 - gremo
1
@Gremo:这不是一个无用的问题,而是一个好问题。其他人可能也在想同样的事情 :-) - gen_Eric
1
同意。我是一名PHP开发者,但我仍然觉得这很有趣。 - Madbreaks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接