Tipos de retorno nulo en PHP 7

Con todo el poder de los tipos de parámetros de función y los tipos de retorno de función introducidos en PHP 7, faltaba una cosa en la función mix. Si bien los tipos de retorno de función permitieron especificar un tipo de retorno deseado, no permitieron especificar la falta de valor de retorno. Para abordar esta inconsistencia, la versión PHP 7.1 introdujo una característica de tipo de retorno nulo.

¿Por qué es esto importante, podríamos preguntarnos? Al igual que con los tipos de retorno de funciones mencionados anteriormente, esta característica puede ser extremadamente útil para fines de documentación y verificación de errores. Por su naturaleza, PHP no requiere una declaración de devolución en sus definiciones de función, lo que deja en claro a primera vista si la función simplemente ejecuta ciertas acciones o devuelve un valor. El uso del tipo de retorno nulo deja más claro que el propósito de una función es realizar una acción, en lugar de producir un resultado.
Echemos un vistazo al siguiente ejemplo:

function A(): void {
// válido
}
function B(): void {
return; // válido
}
function C(): void {
return null; // inválido
}
function D(): void {
return 1; // inválido
}

Los métodos de función A y función B muestran un uso válido del parámetro de tipo vacío. La función A no tiene un valor de retorno establecido explícitamente, pero está bien, ya que PHP siempre devuelve nulo implícitamente. El método de la función B simplemente usa la declaración de retorno sin ningún tipo siguiente, lo que también lo hace válido. El método de la función C es un poco extraño, ya que parece que podría ser válido al principio, pero no lo es. ¿Cómo es que la función C no es válida mientras que el método de la función A lo es, aunque hagan lo mismo? Aunque return y return null son técnicamente equivalentes en PHP, en realidad no son lo mismo. La existencia de un tipo de retorno, o su falta, denota una intención de función. Especificar valores de retorno, incluso si es nulo, sugiere que el valor es significativo. Con un tipo de retorno nulo, el valor de retorno es insignificante. El uso del tipo de retorno void, por lo tanto, significa que no es importante el valor de retorno, el que no se usará en ningún lugar después de que se llame a la función.

La diferenciación entre void explícito y retorno nulo implícito podría
verse como algo abrumador. La conclusión aquí es que usando el tipo de retorno nulo
transmite que la función no debe devolver ningún tipo de
valor. Si bien no tienen ningún impacto importante en el código en sí, y su uso es completamente opcional, aportan una cierta riqueza al lenguaje.

Comparte