Avatar ·

O que significa o ponto de interrogação duplo (??) em PHP? Operador de coalescência nula

Olá a todos! Sou novo em PHP e me deparei com uma sintaxe estranha no código de outra pessoa. Estava escrito algo como: ```php $username = $_GET['user'] ?? 'guest'; ``` Eu entendo o que é `$_GET['user']` e o que é atribuição, mas esses dois pontos de interrogação `??` me confundiram. Eu sei que um ponto de interrogação `?` é usado no operador ternário, por exemplo `$a ? $b : $c`. Mas o que o duplo `??` faz? Tentei pesquisar no Google, mas só encontrei explicações gerais em inglês. Preciso entender em português como isso funciona e para que serve. Em quais situações isso é aplicado? É possível viver sem esse operador, usando construções antigas? E existem algumas armadilhas? Estou especialmente interessado em como isso funciona com arrays e formulários. Muitas vezes preciso verificar se um valor veio de uma requisição POST e, se não, substituir por um valor padrão. Antes eu escrevia construções longas com `isset()`, mas talvez esse operador simplifique o código? Ficarei grato.