2012-01-14 11 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ではありません。

関連する問題