Operador de Coalescência Nula no PHP

17/04/2018

A versão 7.0 do PHP trouxe várias novidades à linguagem. Uma delas é o Operador Coalescente ou Operador de Coalescência Nula que permite o retorno de um valor padrão quando o primeiro não está definido ou vazio. Sua estrutura é semelhante a do operador ternário:

valor de uma variável se ela existe e não é vazia ?? valor padrão;

Como didática, vamos exibir o número de um telefone somente se ele está definido e não vazio:

if($telefone) {
    echo $telefone;
} else {
    echo 'Número não informado';
}

Ou em apenas uma linha:

echo $telefone ?: 'Número não informado';

O exemplo acima falha em sua ausência de verificação da existência da variável $telefone, o que poderia gerar um E_NOTICE. Devemos utilizar a função isset para contornar esta situação:

if(isset($telefone) and $telefone) {
    echo $telefone;
} else {
    echo 'Número não informado';
}

Ou em apenas uma linha:

echo (isset($teletone) and $telefone) ? $telefone : 'Número não informado';

A proposta do Operador Coalescente foi justamente resumir o tipo de operação acima, que são constantes ao escrever algoritmos em PHP. Nosso exemplo ficaria assim:

echo $telefone ?? 'Número não informado';

O operador também permite múltiplas condições:

$telefone = null;
$celular = '21 4444-5555';

echo $fax ?? $telefone ?? $celular;