Skip to content

Latest commit

 

History

History
32 lines (25 loc) · 1.37 KB

File metadata and controls

32 lines (25 loc) · 1.37 KB

Como utilizar o operador nullsafe no PHP8?

O operador nullsafe (?->) é usado para acessar propriedades ou métodos de objetos em uma cadeia de chamadas, garantindo que, se um dos objetos em qualquer ponto da cadeia for nulo, a expressão retorna nulo, em vez de gerar um erro de chamada em um valor nulo. Isso pode simplificar o código e torná-lo mais seguro quando você trabalha com objetos aninhados que podem ou não estar definidos. Aqui está um exemplo de uso do operador nullsafe em PHP 8:

class Pessoa {
    public function getEndereco() {
        return new Endereco('Rua Principal');
    }
}

class Endereco {
    public function getRua() {
        return 'Rua: ' . $this->rua;
    }
}

// Exemplo sem null-safe operator
$pessoa = new Pessoa();

// Antes do PHP 8.0, seria necessário verificar cada nível da cadeia
if ($pessoa !== null && $pessoa->getEndereco() !== null && $pessoa->getEndereco()->getRua() !== null) {
    echo $pessoa->getEndereco()->getRua();
} else {
    echo 'Rua indisponível';
}

// Exemplo com null-safe operator (PHP 8.0+)
echo $pessoa?->getEndereco()?->getRua() ?? 'Rua indisponível';

Suponha que você esteja trabalhando com um objeto Customer que possui uma propriedade address, que por sua vez possui uma propriedade city. No entanto, a propriedade address ou city pode ser nula em alguns casos. Veja como o operador nullsafe pode ser útil: