Como usar o operador coalescante nulo de php

Como usar o operador coalescante nulo de php
O operador nulo de coalescência (??), um dos novos recursos do Php 7, pode ser usado como uma alternativa ao operador ternário e isset () função. É usado para verificar se um valor é atribuído a uma variável e retorna um valor padrão quando nenhum valor é definido para uma variável. Este operador também pode ser usado para ver se $ _Get [] e $ _Post [], que recebem entradas do usuário, são definidas. Além disso, pode verificar o valor de mais de uma variável via encadeamento.

Neste artigo, são discutidas as diferenças entre os operadores de coalescentes ternários e nulos, e o operador de coalescência nula é usado como uma alternativa ao operador ternário e isset () função.

Comparando o operador ternário e o operador nulo

As principais diferenças entre o operador ternário e o operador de coalescantes nulos são descritas abaixo.

  1. Enquanto o operador de coalescante nulo pode ser usado para verificar os valores de duas ou mais variáveis ​​por meio de encadeamento, o operador ternário é usado para definir valores para as duas variáveis ​​com base em uma condição.
  2. Embora o operador coalescante nulo possa verificar se há valores nulos e não gera uma noção eletrônica, o operador ternário não pode verificar se há valores nulos e gera uma noção eletrônica para um valor nulo.
  3. O operador coalescante nulo retorna o valor da variável se essa variável contiver um valor e não for nulo; O operador ternário retorna o valor da esquerda do cólon se a condição for verdadeira e da direita do cólon se a condição for falsa.
  4. O operador nulo de coalescância é mais legível que o operador ternário.
  5. O operador nulo de coalescância é mais rápido que o operador ternário.

Usando o operador nulo de coalescência

O operador nulo de coalescantes é usado nos exemplos a seguir.

Exemplo 1: Usando o operador nulo de coalescência entre duas variáveis

O operador coalescante nulo pode ser usado com duas ou mais variáveis. Neste exemplo, o operador é usado para verificar os valores de diferentes variáveis.

// define duas variáveis
$ var1 = 'Este é o primeiro valor da string.';
$ var3 = 'Este é o valor da terceira string.';
$ var4 = nulo;
$ var5 = 'Este é o quinto valor de sequência.';
$ var6 = ";
// Verifique o valor das variáveis
$ resultado1 = $ var1 ?? $ var2;
eco "

$ resultado1

";
// Verifique o valor das variáveis
$ resultado2 = $ var2 ?? $ var3;
eco "

$ resultado2

";
// Verifique o valor das variáveis
$ resultado3 = $ var4 ?? $ var5;
eco "

$ resultado3

";
// Verifique o valor das variáveis
$ resultado4 = $ var6 ?? $ var5;
eco "

$ resultado4

";
?>

A saída a seguir será gerada executando o script acima. O valor de $ var1 está impresso na primeira saída, o valor de $ var3 está impresso na segunda saída (porque $ var2 é indefinido), o valor de $ var5 está impresso na terceira saída (porque $ var4 é nulo) e nada é impresso para a quarta saída (porque $ var6 está vazia).


Exemplo 2: Usando o operador nulo de coalescantes para verificar $ _get [] e $ _post [] valores

Neste exemplo, o operador nulo de coalescentes é usado como uma alternativa ao isset () função. Aqui, os dois primeiros operadores são usados ​​para verificar o valor do $ _Get [] Array, e o terceiro operador é usado para verificar o $ _Post [] variedade.

// Verifique o valor do nome do argumento da URL
$ name = $ _get ['nome'] ?? 'Desconhecido';
// Verifique o valor do e -mail do argumento da URL
$ email = $ _get ['email'] ?? 'Nenhum endereço de e -mail foi encontrado.';
// Verifique o valor do telefone em $ _Post Array e em $ _Get Array
$ telefone = $ _Post ['telefone'] ?? $ _Get ['telefone'] ?? 'Nenhum número de telefone encontrado.';
// Imprima a saída das três variáveis
eco " Nome: $ nome
E-mail: $ email
Telefone: $ telefone ";
?>

A saída a seguir será gerada executando o script acima sem fornecer valores para $ _Get ['nome'], $ _get ['email'], $ _get ['telefone'] e $ _post ['telefone'].


A saída a seguir será gerada se você executar o script com valores para $ _Get ['nome'] e $ _Get ['email']. Quando a terceira declaração do script é executada, o valor de $ _Post ['telefone'], que é indefinido, é verificado. Em seguida, o valor de $ _Get ['telefone'], que também é indefinido, é verificado. Portanto, o valor padrão é impresso para a terceira saída.


Exemplo 3: Comparação do operador ternário com o operador nulo de coalescência

Neste exemplo, o operador nulo de coalescentes é usado para substituir o operador ternário. Aqui, o operador ternário é usado para verificar o valor de $ _Get ['n'], e se a variável contiver um valor, ele armazenará na variável $ número; Caso contrário, vai imprimir indefinido. A mesma tarefa é realizada usando o operador nulo de coalescantes na última parte do script.

eco "A saída do operador ternário:
";
// Usando o operador ternário para verificar a variável
$ número = isset ($ _ get ['n']) ? $ _Get ['n']: "indefinido";
eco "o valor de n é $ número
";
eco "A saída do operador nulo de coalescentes:
";
// Usando o operador de coalescante nulo para verificar a variável
$ número = $ _get ['n'] ?? 'indefinido';
eco "o valor de n é $ número
";
?>

A saída a seguir será gerada se você executar o script sem fornecer valores para $ _Get ['n']. Aqui, o operador ternário verifica se a variável $ _Get ['n'] está definido. As saídas do operador ternário e do operador de coalescantes nulos são indefinido Porque nenhum valor está definido para $ _Get ['n'].


A saída a seguir será gerada se você executar o script com um valor para $ _Get ['n']. Tanto o operador ternário quanto o operador nulo de coalescentes imprimiram o valor de $ _Get ['n'] Fornecido no URL. Aqui, 100 é atribuído para o argumento n.

Conclusão

O operador nulo de coalescência é uma característica útil do PHP que pode ser usada como alternativa ao operador ternário e ao isset () função. É melhor que o operador ternário porque é mais rápido e pode verificar os valores de várias variáveis ​​via encadeamento, como mostrado no segundo exemplo.

Vídeo tutorial