PHP中是否有一种方法可以在自定义函数的定义中调用匿名函数并将其作为参数传递?
我有这个功能
function foo( $message = function() {
return 'bar';
}) {
return $message;
}
echo foo();
这会产生错误:
致命错误:常量表达式包含无效运算符
语法错误还是没有办法?
答案 0 :(得分:1)
默认值必须是一个常量表达式,而不是(例如) 变量,类成员或函数调用。 PHP也允许使用 数组和特殊类型NULL作为默认值
因此,基本上,您不能将可抛出(函数)设置为默认值。
相反,您可以尝试以下操作:
function foo( $message = null ) {
// If using default value
if (!isset($message)) {
// You can now define your default anonymous function behaviour
$return = function() { return 'bar';};
}
// Now, you can return the anonymous function handle
return $return();
}
echo foo();