0

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

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

但是当我尝试一些更复杂的东西时,我遇到了一个解析错误,显示出意外的 T_VARIABLE。

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

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

4

4 回答 4

2
function foo ($var = null)
{
    return ($var === null) ? $this->string : $var;
}
于 2013-02-16T00:15:41.573 回答
0

您不能从默认函数参数值实例化对象。

您可以测试$null然后在方法中实例化它。

于 2013-02-16T00:15:41.370 回答
0

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

于 2013-02-16T00:16:17.470 回答
0

我不认为你能做到这一点。默认值只能是常量。

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

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

于 2013-02-16T00:16:27.953 回答