php

Operador de fusión de null o Null coalesce en PHP

Introducción

PHP 7 trajo muchas cosas buenas, una de ellas es el operador de fusión null o null coalesce. Este operador es representado por dos signos de interrogación. Puedes llamarlo como…

  • Dos signos de interrogación
  • Doble signo de interrogación
  • Signos de interrogación
  • ??

Hoy vamos a explicar su uso y funcionamiento, verás que aumentará tu productividad. Por cierto, es una característica de PHP 7 así que, ¿qué esperas para actualizarte?

Explicación y ejemplos de null coalesce en PHP

Este operador viene a remplazar los if, isset y tal vez los operadores ternarios. Si conoces MySQL, te invito a leer este post explicando COALESCE, verás que es casi lo mismo 😉

Lo que hace este poderoso operador es devolver el primer valor que no sea nulo.

Pongamos el ejemplo básico de una API de usuarios. En dicha API nos mandan por medio de GET el límite de usuarios que queremos ver.

Si no mandan el límite, entonces asumimos un límite por defecto, que sería 10 (en este caso). Entonces lo haríamos así:

See the gist on github.

Si queremos ser un poco más elegantes, usamos el operador ternario y quedaría rescrito así:

See the gist on github.

Pero igual no me gusta, mejor lo hacemos así:

See the gist on github.

Así se ve mucho mejor. En este momento no se nota mucho la diferencia, pero sigue leyendo para que veas cuán útil es.

Más de dos operandos

Siguiendo el ejemplo de arriba, ahora supongamos que modificamos nuestra API y aceptamos el límite tanto por POST así como por GET.

Normalmente quedaría así:

See the gist on github.

Con el operador ternario, así:

See the gist on github.

Finalmente, con este nuevo operador queda de la siguiente manera:

See the gist on github.

Primero evalúa si hay algo en GET, luego en POST y finalmente, si ambos valores son nulos, se obtiene 10.

3, 4, 5 o más operandos

Se puede evaluar una lista infinita de operandos. Aquí un ejemplo:

See the gist on github.

En este caso, límite es 10, ya que es el primer valor que no es nulo y ahí deja de evaluar:

También trabaja bien con funciones:

See the gist on github.

En este caso, saludo es “Hola mundo”:

Así como podemos llamar a funciones creadas por nosotros, podemos llamar a funciones nativas de PHP y claramente pasar argumentos.

Ejemplo final

Terminemos dando un ejemplo siguiendo nuestra API de usuarios en donde pueden mandar el límite por GET o POST.

Tendremos una función que devolverá los usuarios, pero que también puede devolver null. Y si devuelve null, devolvemos un arreglo vacío. Juntando todo…

See the gist on github.

Llamamos a la función ya sea con lo que haya en GET, POST o con el número 10. Y si nos devuelve null, entonces devolvemos []; es decir, un arreglo vacío.

Conclusión

Básicamente este operador simplifica el uso de isset y el encadenamiento largo con el operador ternario.

Devuelve el primer argumento que no sea nulo, y podemos evaluar una lista infinita de operandos.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

1 día hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

1 semana hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Esta web usa cookies.