Revista Informática

PHP WTF: Type hinting y su peculiar forma de tratar un valor null

Publicado el 12 agosto 2015 por Jocual
WTF: Type hinting peculiar forma tratar valor nullPHP WTF: Type hinting y su peculiar forma de tratar un valor null

Hola, hoy en nuestra sección php wtf hablarémos de una peculiaridad de PHP que he descubierto hoy durante una review de código en el trabajo.

public function miFuncion(MiObjeto $objeto){
//...
}

Mi propuesta era añadir typehinting a una función la cual tenía como parámetro un objeto y sorpresa fue cuando vi la respuesta a mi propuesta.

No puedo, si pongo typehinting cuando paso un valor null me da el siguiente error PHP Fatal error: Argument 1 passed to foo() must not be null

Investigando un poco, di con la solución, a diferencia de otros lenguajes como Java, PHP no admite valores null cuando hacemos typehinting, si queremos este comportamiento estamos obligados a poner una valor por defecto, en este caso null, por tanto para poder tener el mismo comportamiento que en Java nuestra función debería ser de la siguiente forma:

public function miFuncion(MiObjeto $objeto =  null){
//...
}

Podemos ver la explicación detallada en el manual de PHP .

Espero que os haya gustado el php wft de hoy, y como siempre no desespereis con PHP, todo tiene una explicación.


Volver a la Portada de Logo Paperblog