DEV Community

Cover image for Operador de coalescência nula no PHP 7.4
Rodrigo Yoshioka
Rodrigo Yoshioka

Posted on

Operador de coalescência nula no PHP 7.4

Uma novidade no PHP 7.4 é operador de coalescência nula. Mas o que diabos é coalescência?

De acordo com a internet:

O conceito de coalescência, que tem origem no vocábulo latino coalescens, é a propriedade de as coisas se fundirem ou unirem. As substâncias ou os materiais coalescentes são aqueles que se podem unir num único corpo.

Boa, e como ele foi implementado no PHP?

Imagine que você precise atribuir um valor à uma variável. E como condição, caso essa mesma variável não esteja instanciada deve-se atribuir um outro valor:

1 - Primeira idéia:

if (isset($usuario)) {
    $usuario = 'outro valor' 
}
Enter fullscreen mode Exit fullscreen mode

2 - Melhorando com operador ternário:

$usuario = isset($usuario) ? $usuario : 'outro valor';
Enter fullscreen mode Exit fullscreen mode

3 - Usando coalescência agora:

$usuario = $usuario ?? 'outro valor';
Enter fullscreen mode Exit fullscreen mode

ou enão de forma mais enxuta:

$usuario ??= 'outro valor';
Enter fullscreen mode Exit fullscreen mode

Todos os exemplos acima fazem a mesma coisa. E uma dica extra, também é possível fazer vários encadeamentos, dessa forma:

$usuario =  $usuario ?? $_GET['usuario'] ?? $_POST['usuario'] ?? 'outro valor';
Enter fullscreen mode Exit fullscreen mode

Nesse caso a variável $usuario será atribuída com o primeiro valor encontrado.

Referências:

1 - https://www.php.net/manual/pt_BR/migration70.new-features.php

2 - https://cursos.alura.com.br/novidades-do-php-7-4-operador-de-atribuicao-com-coalescencia-nula-c291
3 - https://conceito.de/coalescencia

Top comments (0)