当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
}
(注意:我没有测试上面的代码)
答案 0 :(得分:17)
Default arguments只能是“标量参数”,数组或NULL。
PHP中的"scalar values"是数字,字符串和布尔值。
如果你想让一个函数成为默认参数,你需要使用第二种方法,第一种方法是语法错误。