【发布时间】:2019-11-16 01:45:54
【问题描述】:
我想知道如何指定参数的默认值,它应该是一个函数?我尝试通过以下函数闭包来做到这一点:
function foo($func = function(){}) {
$func();
}
function bar() {
$this->foo(); // Default parameter is supposed to be here
$this->foo(function(){
echo("non default func param");
});
}
这会导致消息出现语法错误
“不允许将表达式作为参数默认值”。
【问题讨论】:
-
为什么不:在 foo() 函数中调用函数..然后将结果返回到
function() -
在您的问题中分享实际代码示例
-
@devpro,我很难理解您的回复,如果您有任何代码 sn-ps,我将不胜感激。至于实际示例,我的 OP 中的 sn-p 是我的实际示例。
-
你不能影响
null默认值,然后检查它的影响吗?喜欢function foo ($fn = null) { if (is_callable($fn) { $fn(); } else { /* default process here */ } }