2012-01-14 15 views
6

È possibile impostare un oggetto DateTime come parametro opzionale utilizzando now come predefinito?DateTime come parametro opzionale (predefinito su "now", non null)?

Il seguente codice mi dà un errore di di sintassi:

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

E 'solo una questione di curiosità, so che posso fare:

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

risposta

6

No, non è possibile impostare un oggetto come parametro funzione/metodo predefinito. Dal documentation:

argomento di default Valori
Una funzione può definire C++ - valori di default di stile per scalari argomenti ...

Un oggetto non è un scalar datatype.

Problemi correlati