Cómo usar PHP NULL Coalescing Operator

Cómo usar PHP NULL Coalescing Operator
El operador nulo de coalescre (??), una de las nuevas características de PHP 7, se puede utilizar como alternativa al operador ternario y Está establecido() función. Se utiliza para verificar si se asigna un valor a una variable y devuelve un valor predeterminado cuando no se define ningún valor para una variable. Este operador también se puede usar para ver si $ _Get [] y $ _Post [], que reciben entradas de los usuarios, se establecen. Además, puede verificar el valor de más de una variable mediante el encadenamiento.

En este artículo, se discuten las diferencias entre los operadores de fusiones ternarias y nulos, y el operador nulo de coalescre se utiliza como alternativa al operador ternario y Está establecido() función.

Comparación del operador ternario y el operador de fusión nula

Las principales diferencias entre el operador ternario y el operador de fusión nulo se describen a continuación.

  1. Mientras que el operador nulo de Coalescing se puede usar para verificar los valores de dos o más variables a través del encadenamiento, el operador ternario se usa para establecer valores para las dos variables basadas en una condición.
  2. Mientras que el operador nulo de Counsescing puede verificar los valores nulos y no genera una notaja electrónica, el operador ternario no puede verificar los valores nulos y genera una nota de E para un valor nulo.
  3. El operador de fusión nulo devuelve el valor de la variable si esa variable contiene un valor y no es nulo; El operador ternario devuelve el valor de la izquierda del colon si la condición es verdadera y desde la derecha del colon si la condición es falsa.
  4. El operador nulo de Coalescing es más legible que el operador ternario.
  5. El operador nulo de coalescre es más rápido que el operador ternario.

Uso del operador nulo de Counsescing

El operador de fusión nulo se usa en los siguientes ejemplos.

Ejemplo 1: Uso del operador de fusión nula entre dos variables

El operador de fusión nulo se puede usar con dos o más variables. En este ejemplo, el operador se usa para verificar los valores de diferentes variables.

// Defina dos variables
$ var1 = 'Este es el primer valor de cadena.';
$ var3 = 'Este es el tercer valor de cadena.';
$ var4 = nulo;
$ var5 = 'Este es el valor de la quinta cadena.';
$ var6 = ";
// Verifique el valor de las variables
$ result1 = $ var1 ?? $ var2;
eco "

$ resultado1

";
// Verifique el valor de las variables
$ result2 = $ var2 ?? $ VAR3;
eco "

$ resultado2

";
// Verifique el valor de las variables
$ result3 = $ var4 ?? $ VAR5;
eco "

$ resultado3

";
// Verifique el valor de las variables
$ result4 = $ var6 ?? $ VAR5;
eco "

$ resultado4

";
?>

La siguiente salida se generará ejecutando el script anterior. El valor de $ VAR1 se imprime en la primera salida, el valor de $ VAR3 se imprime en la segunda salida (porque $ var2 está indefinido), el valor de $ var5 se imprime en la tercera salida (porque $ Var4 es nulo), y no se imprime nada para la cuarta salida (porque $ VAR6 esta vacio).


Ejemplo 2: Uso del operador de Coalescing NULL para verificar los valores de $ _get [] y $ _post []

En este ejemplo, el operador de fusión nula se usa como alternativa al Está establecido() función. Aquí, los dos primeros operadores se utilizan para verificar el valor del $ _Get [] matriz, y el tercer operador se usa para verificar el $ _Post [] formación.

// Verifique el valor del nombre del argumento de URL
$ name = $ _get ['name'] ?? 'Desconocido';
// Verifique el valor de correo electrónico del argumento de URL
$ correo electrónico = $ _get ['correo electrónico'] ?? 'No se encuentra ninguna dirección de correo electrónico.';
// Verifique el valor del teléfono en una matriz de $ _post y en una matriz de $ _get
$ phone = $ _post ['teléfono'] ?? $ _Get ['teléfono'] ?? 'No se encuentra ningún número de teléfono.';
// imprima la salida de las tres variables
eco " Nombre: $ Nombre
Correo electrónico: $ correo electrónico
Teléfono: $ teléfono ";
?>

La siguiente salida se generará ejecutando el script anterior sin proporcionar valores para $ _Get ['name'], $ _get ['correo electrónico'], $ _get ['teléfono'] y $ _post ['teléfono'].


Se generará la siguiente salida si ejecuta el script con valores para $ _Get ['Nombre'] y $ _Get ['correo electrónico']. Cuando se ejecuta la tercera declaración del script, el valor de $ _Post ['teléfono'], que no está definido, se verifica. A continuación, el valor de $ _Get ['teléfono'], que también está indefinido, se verifica. Por lo tanto, el valor predeterminado se imprime para la tercera salida.


Ejemplo 3: Comparación del operador ternario con el operador nulo de coalescre

En este ejemplo, el operador de fusión nulo se utiliza para reemplazar el operador ternario. Aquí, el operador ternario se usa para verificar el valor de $ _Get ['n'], y si la variable contiene un valor, se almacenará en la variable $ Número; de lo contrario, se imprimirá indefinido. La misma tarea se realiza utilizando el operador nulo de Coalescing en la última parte del script.

eco "La salida del operador ternario:
";
// Uso del operador ternario para verificar la variable
$ number = isset ($ _ get ['n']) ? $ _Get ['n']: "indefinido";
echo "El valor de n es $ número
";
eco "La salida del operador de Coalescing nulo:
";
// Uso del operador de Coalescing nulo para verificar la variable
$ number = $ _get ['n'] ?? 'indefinido';
echo "El valor de n es $ número
";
?>

Se generará la siguiente salida si ejecuta el script sin proporcionar valores para $ _Get ['n']. Aquí, el operador ternario verifica si la variable $ _Get ['n'] Está establecido. Las salidas tanto del operador ternario como del operador de fusión nulo son indefinido porque no se establece ningún valor para $ _Get ['n'].


Se generará la siguiente salida si ejecuta el script con un valor para $ _Get ['n']. Tanto el operador ternario como el operador nulo de coalescre imprimieron el valor de $ _Get ['n'] proporcionado en la URL. Aquí, se asigna 100 para el argumento n.

Conclusión

El operador nulo de Coalescing es una característica útil de PHP que puede usarse como alternativa al operador ternario y al Está establecido() función. Es mejor que el operador ternario porque es más rápido y puede verificar los valores de múltiples variables a través del encadenamiento, como se muestra en el segundo ejemplo.

Tutorial de video