Extraño, pero no pude encontrar esto en SO, tal vez alguien pueda ayudar.
¿Qué significa esta sintaxis en PHP cuando tenemos dos puntos seguidos de un signo de interrogación y luego otro nombre de clase cuando se define un método?
public function someMethod(): ?SomeClassFunción completa por si acaso con nombres originales
public function getParentProject(): ?ParentProjectTester { return $this->parentProject; }Esta sintaxis significa que el método se ve obligado a devolver NULL (lo que representa el signo de interrogación) o una instancia de la clase declarada. Consulte: documentos php .
Si se devuelve algo más, esto provocará un error como: Return value of Name\Space::method() must be of the type ..., ... returned in /Path/To/File.php on line ... .
Es una buena práctica usar este tipeo estricto en la programación orientada a objetos para que el código sea menos ambiguo y menos sensible a los errores.
Pero no está obligado a usarlo, su código funcionará perfectamente bien si elimina el tipo de retorno y solo usa public function getParentProject() .
Esa es una declaración de tipo de devolución, que le indica el tipo que debe devolver: https://www.brainbell.com/php/type-declarations-hints.html#return-type
El signo de interrogación significa que es anulable, lo que significa que podría ser nulo y no de ese tipo.