我想做这样的事情:
function readUser($aUser = loadDefaultUser()){
//doing read User
}
我发现它会向我显示错误,如何将函数返回作为默认值传递?谢谢。
答案 0 :(得分:5)
我宁愿为此参数提供Null
值,然后在函数体中调用loadDefaultUser()
。像这样:
function readUser($aUser = NULL){
if(is_null($aUser)){
$aUser = loadDefaultUser();
}
//...
}
答案 1 :(得分:1)
你可以在loadDefaultUser()函数完成后添加一个callback-parameter,它会使用return / result激活回调函数。这有点像ajax-javascript回调。
function loadDefaultUser ( $callback )
{
$result = true;
return $callback($result);
}
答案 2 :(得分:1)
是的,you can provide a default argument。但是,默认参数“必须是常量表达式,而不是(例如)变量,类成员或函数调用。”
您可以通过使用默认值的常量值来伪造此行为,然后在调用函数时将其替换为函数调用的结果。
我们将使用NULL
,因为这是一个非常典型的“无价值”值:
function readUser($aUser = NULL) {
if (is_null($aUser))
$aUser = loadDefaultUser();
// ... your code here
}
答案 3 :(得分:0)
function readUser($aUser = NULL){
if ($aUser === NULL){
$aUser = loadDefaultUser();
}
//do your stuff
}