2013-02-16 83 views
0

我想爲我的函數有一個默認參數。因此,例如,你通常可以做類似的事情。你如何將一個對象實例作爲函數的默認參數?

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

但我遇到了一個解析錯誤,說我意想不到的T_VARIABLE,當我嘗試一些更復雜的東西。

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

如何將對象的實例用作默認參數。謝謝!

+0

您可以使用'$ var = null',然後檢查它是否爲空。 – 2013-02-16 00:15:43

+0

默認參數應該是常量表達式,而不是變量,類的成員或調用函數。 – 2013-02-16 00:16:33

回答

0

您不能從默認函數參數值實例化對象。

您可以測試$null,然後在該方法中實例化它。

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

你不能這樣做。函數參數只能初始化爲常量值。

相關問題