Nesta aula aprenderemos a utilizar o Null Coalescing Operador, isto é, um novo operador implementado na versão 7 do PHP que nos proporciona uma maneira ágil de verificar valores nulos. |
INTRODUÇÃO
A versão 7 do PHP trouxe um novo operador que diminui a necessidade de verificar se uma referência existe para em seguida, utilizar a mesma. O objetivo é que possamos definir o valor a ser retornado, ou então, definir um valor para caso não existe um valor a ser retornado.
OPERADOR NULL COALESCE
O operador Null Coalesce é representado pela linguagem PHP com a utilização de dois sinais de interrogação, por exemplo:
< variável > = < valor > ?? < há valor definido? Senão retorna isso >;
$x = $a ?? 10;
Se a variável $a
existir, o valor da mesma será definido para $x
, do contrário, o número 10 é que será utilizado.
É comum a necessidade de verificarmos se um determinado valor está condito num Array e então, fazer uso do mesmo. Atualmente, é necessário o uso de uma condição para averiguar que o item existe, ou então, verificar que a variável é diferente de Null, para que somente então, possamos fazer uso da mesma. Até porque, se utilizarmos uma variável que contém Null é será levantado uma exceção e o Script terá sua execução interrompida.
O operador Null Coalesce veio para agilizar essa constante necessidade de verificação e utilização do valor contido no item ou variável checado.
A sintaxe do operador Null Coalesce é bastante semelhante a sintaxe do Operador Ternário, porém, com este operador, é verificado se a referência existe ou então, se um elemento esta contido num Array. Caso o valor exista, o mesmo será utilizado, do contrário, iremos definir algum outro valor ou então, alguma outra verificação.
É interessante observar que o operador Null Coalesce fornece uma estrutura para checagem e utilização, porém, é possível continuarmos trabalhando sem fazer uso do mesmo.
A seguir utilizamos algumas estruturas e também, a estrutura do operador Null Coalesce.
#operador ternário
echo $x ? $x : "";
echo $x ?: "";
#operador Null Coalesce
echo $x ?? "";
echo $x ?? $b ?? "";
No exemplo seguir, utilizamos o operador Null Coalesce para definir o que será impresso na saída padrão.
// $a não está definido
$b = 10;
echo $a ?? 2; // saída 2
echo $a ?? $b ?? 7; // saída 10
No exemplo acima, inicialmente definimos à variável $b
o valor 10. Em seguida, mandamos imprimir na saída padrão o valor contido da varável $a
, que não foi por nós definida, ou então, algum outro valor.
EXEMPLO FEITO EM AULA
$quadrado = function($num){
return $num * $num;
};
$cubo = function($num) use ($quadrado){
return $quadrado($num) * $num;
};
$soma = function($num){
return $num + $num;
};
function processa_lista($lista, $func){
foreach($lista as &$item)
$item = $func($item);
return $lista;
}
print_r(processa_lista(range(1, 10), $soma));
Tags curso, php, operador, null coalescing, null coalescing operator, operador null coalesce, blog
Comentários
comments powered by Disqus