¿Qué es la fusión nula de PHP? ¿Qué y cómo se utiliza? Los aprenderemos en esta lección.

El operador PHP Null Coalescing se introdujo en PHP 7. El operador PHP Null Coalescing permite asignar datos de forma condicional. Si el primer operando existe y no es nulo, devuelve el primer operando; en caso contrario, devuelve el segundo operando.

Ejemplos de fusión nula de PHP

// Örnek 1: 
echo $name = $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 1.1
if (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody
// Örnek 1.2
echo $name = isset($_POST['name']) ? $_POST['name'] : 'nobody';
// Çıktı: nobody

En el ejemplo 1, como no había datos de publicación llamados nombre, se asignó el valor nadie a la variable $nombre y se imprimió. El ejemplo 1 es una versión abreviada de los ejemplos 1.1 y 1.2 con el operador PHP Null Coalescing. Ambos devuelven el mismo resultado y tienen el mismo significado.

// Örnek 2
$first_name = 'Onur';
$last_name = null;
echo ($first_name ?? 'Ad Yok') . ' ' . ($last_name ?? 'Soyad Yok');?> 
// Çıktı: Onur Soyad Yok

En el ejemplo 2, dado que la variable $first_name tiene datos, devolvió la variable en la primera condición. Sin embargo, dado que la variable $last_name era nula, devolvió el segundo operando en la segunda condición e imprimió la oración 'Sin apellido'.

Encadenamiento de operadores coalescentes nulos de PHP

Podemos utilizar el operador PHP Null Coalescing encadenándolo.

// Örnek 3
echo $name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';
// Çıktı: nobody
// Örnek 3.1
if (isset($_GET['name'])) {
    echo $name = $_GET['name'];
} elseif (isset($_POST['name'])) {
    echo $name = $_POST['name'];
} else {
    echo $name = 'nobody';
}
// Çıktı: nobody

En el Ejemplo 3, PHP asigna los datos $_GET['nombre'] a la variable $nombre y los imprime si $_GET['nombre'] está definido. Si no está definido, verifique la variable $_POST'name'], si $_POST'name'] está definido, descarta e imprime, si no, descarta e imprime los datos de 'nadie'. El ejemplo 3.1 devuelve el mismo resultado que el ejemplo 3 y tiene el mismo significado. El ejemplo 3.1 es una versión más larga del ejemplo 3, codificada con la declaración condicional if-elseif-else. El ejemplo 3 es una versión corta codificada con PHP Null Coalescing.