具有lambda参数的PHP函数是否可以具有默认值?
虽然以下工作正常:
function calcValue($func) {
echo $func(5);
}
calcValue(function($a){return 2*$a;});
当我尝试:
function calcValue($func = function($a){return 2*$a;}) {
echo $func(5);
}
我得到一个解析错误:
Parse error: syntax error, unexpected 'function' (T_FUNCTION)
答案 0 :(得分:1)
默认值必须是常量表达式。有关详细信息,请参阅此问题:PHP Anonymous Function as Default Argument?
答案 1 :(得分:1)
函数调用中的默认值必须是常量。它们不能是动态值/表达式结果。
good: function($foo = 'bar');
bad: function($foo = bar());
bad: function($foo = 'ba' . 'r'); // to PHP it's still an expression.