2012-01-14 72 views
6

可以使用now作爲默認值,將DateTime對象設置爲可選參數嗎?DateTime作爲可選參數(默認爲「now」,非null)?

下面的代碼給了我一個語法錯誤

public function getData(array $metrics, DateTime $start, 
    DateTime $end = new DateTime, $params = array()) 
{ 
    // Default DateTime constructor automatically use "now" 
} 

這只是好奇的問題,我知道我能做到

public function getData(array $metrics, DateTime $start, 
    DateTime $end = null, $params = array()) 
{ 
    $end = is_null($end) ? new DateTime() : null; 
} 

回答

6

不,你不能設置一個對象作爲默認的函數/方法參數。從documentation

默認參數值
函數可以定義C++ - 風格的默認值參數...

的對象不是一個scalar datatype