Ho un metodo di classe che si occupa di date:tipo hinting e opzionali attributi in PHP
public function setAvailability(DateTime $start, DateTime $end){
}
Dal momento che la disponibilità degli articoli può avere limite inferiore, limite superiore, entrambi o nessuno, mi piacerebbe fare setAvailability () accetta anche valori NULL. Tuttavia, la costante NULL
viola il tipo di hinting:
$foo->setAvailability(NULL, $end);
innesca:
Catchable fatal error: Argument 1 passed to Foo::setAvailability() must be an instance of DateTime, null given
E, per quanto ne so, non posso avere un'istanza di DateTime senza alcun valore. (? Posso)
Per un motivo non riesco a capire, questo sembra funzionare:
public function setAvailability(DateTime $start=NULL, DateTime $end=NULL){
}
...
$foo->setAvailability(NULL, $end);
Ma sembra un hack che funziona per puro caso.
Come gestiresti le date non impostate nelle classi PHP?
Il collegamento aggiunto alla pagina di manuale pertinente –
+1 sembra un comportamento su cui fare affidamento. Sarebbe comunque bello scoprire se esiste una specie di oggetto DateTime "null". –
@zerocrate: grazie. Non solo è un comportamento documentato, ma è anche spiegato nel capitolo che ti aspetteresti che sia. Mi sento un novellino <:-) –