如何将对象实例作为函数的默认参数?

时间:2013-02-16 00:13:45

标签: php

我正在尝试为我的函数设置一个默认参数。例如,你通常可以做类似的事情。

function foo ($var = 'blah')
{
    return $var;
}

但是当我尝试更复杂的事情时,我遇到了一个解析错误,表示意外的T_VARIABLE。

function foo ($var = $this->string)
{
    return $var;
}

您如何将对象的实例用作默认参数。谢谢!

4 个答案:

答案 0 :(得分:2)

function foo ($var = null)
{
    return ($var === null) ? $this->string : $var;
}

答案 1 :(得分:0)

您无法从默认函数参数值实例化对象。

您可以测试$null,然后在方法中对其进行实例化。

答案 2 :(得分:0)

你不能这样做。函数参数只能初始化为常量值。

答案 3 :(得分:0)

我认为你不能那样做。默认值只能是常量。

http://php.net/manual/en/functions.arguments.php

“默认值必须是常量表达式,而不是(例如)变量,类成员或函数调用。”