我可以使用函数在php中返回默认参数吗?

时间:2011-08-13 13:33:06

标签: php default

我想做这样的事情:

function readUser($aUser = loadDefaultUser()){

 //doing read User
}

我发现它会向我显示错误,如何将函数返回作为默认值传递?谢谢。

4 个答案:

答案 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
}