que tienen un método de clase que se ocupa de fechas:Tipo y una sugerencia de atributos opcionales en PHP
public function setAvailability(DateTime $start, DateTime $end){
}
Dado que la disponibilidad de productos puede tener límite inferior, límite superior, ambos o ninguno, me gustaría hacer setAvailability () también acepta valores NULL. Sin embargo, la constante NULL
viola el tipo de insinuación:
$foo->setAvailability(NULL, $end);
desencadena:
Catchable fatal error: Argument 1 passed to Foo::setAvailability() must be an instance of DateTime, null given
Y, por lo que yo sé, no puedo tener una instancia de DateTime sin valor. (? ¿Puedo)
Por una razón que no puedo entender, esto parece funcionar:
public function setAvailability(DateTime $start=NULL, DateTime $end=NULL){
}
...
$foo->setAvailability(NULL, $end);
Pero parece un truco que funciona por pura casualidad.
¿Cómo manejarías las fechas sin configurar en las clases de PHP?
Agregado enlace a la página relevante del manual –
+1 parece un comportamiento en el que confiar. Sería agradable saber si existe algún tipo de objeto DateTime "nulo". –
@zerocrates: Gracias. No solo es un comportamiento documentado, sino que también se explica en el capítulo que se espera que sea. Me siento como un novato <:-) –