PHP闭包作为可选函数参数

时间:2012-05-14 15:48:22

标签: php closures

当argument是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 个答案:

答案 0 :(得分:17)

Default arguments只能是“标量参数”,数组或NULL。

PHP中的

"scalar values"是数字,字符串和布尔值。

如果你想让一个函数成为默认参数,你需要使用第二种方法,第一种方法是语法错误。

相关问题