我想爲我的函數有一個默認參數。因此,例如,你通常可以做類似的事情。你如何將一個對象實例作爲函數的默認參數?
function foo ($var = 'blah')
{
return $var;
}
但我遇到了一個解析錯誤,說我意想不到的T_VARIABLE,當我嘗試一些更復雜的東西。
function foo ($var = $this->string)
{
return $var;
}
如何將對象的實例用作默認參數。謝謝!
我想爲我的函數有一個默認參數。因此,例如,你通常可以做類似的事情。你如何將一個對象實例作爲函數的默認參數?
function foo ($var = 'blah')
{
return $var;
}
但我遇到了一個解析錯誤,說我意想不到的T_VARIABLE,當我嘗試一些更復雜的東西。
function foo ($var = $this->string)
{
return $var;
}
如何將對象的實例用作默認參數。謝謝!
您不能從默認函數參數值實例化對象。
您可以測試$null
,然後在該方法中實例化它。
function foo ($var = null)
{
return ($var === null) ? $this->string : $var;
}
你不能這樣做。函數參數只能初始化爲常量值。
我不認爲你可以這樣做。默認值只能是常量。
http://php.net/manual/en/functions.arguments.php
「的默認值必須是常量表達式,而不是(例如)一個變量,類成員,或者一個函數調用」。
您可以使用'$ var = null',然後檢查它是否爲空。 – 2013-02-16 00:15:43
默認參數應該是常量表達式,而不是變量,類的成員或調用函數。 – 2013-02-16 00:16:33