0Pricing
PHP Academy · Aula

Operador nullsafe e tipos união

Use ?-> para encadear objetos anuláveis com segurança e declare dicas de tipo união.

Operador nullsafe e tipos união é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

O operador nullsafe

O PHP 8.0 introduziu ?->. Se o lado esquerdo for null, toda a cadeia será interrompida e retornará null em vez de lançar um erro.

Problema que ele resolve

Sem o operador nullsafe, encadear objetos que podem ser nulos exige verificações de nulo detalhadas.

<?php
// Old way:
$city = null;
if ($user !== null && $user->getAddress() !== null) {
    $city = $user->getAddress()->getCity();
}

// PHP 8 nullsafe:
$city = $user?->getAddress()?->getCity();

Nullsafe com chamadas de métodos

Cada ?-> da cadeia é verificado de forma independente. O primeiro null interrompe o restante.

<?php
$name = $order?->getCustomer()?->getName() ?? "Guest";

Nullsafe com propriedades

Também funciona com o acesso a propriedades.

<?php
$zip = $user?->address?->zip;

Nullsafe não ignora efeitos colaterais

Se a cadeia nullsafe for interrompida, as chamadas de métodos seguintes da cadeia não serão executadas; nenhum efeito colateral será ativado.

Tipos união

Os tipos união do PHP 8.0 permitem declarar que um parâmetro, uma propriedade ou um valor de retorno aceita um entre vários tipos.

<?php
function formatId(int|string $id): string {
    return (string) $id;
}

Exemplos de tipos união

Tipos união comuns na prática:

<?php
function process(int|float $amount): float {
    return (float) $amount;
}

function findUser(int|string $idOrEmail): ?User {
    // search by ID or email
}

Tipos anuláveis

?Type é uma abreviação de Type|null: o valor pode ser desse tipo ou nulo.

<?php
function greet(?string $name): string {
    return "Hello, ".($name ?? "stranger");
}

null em tipos união

Você pode incluir null explicitamente em um tipo união: int|string|null.

Tipos interseção (PHP 8.1)

O PHP 8.1 adicionou tipos interseção (A&B): o valor deve satisfazer todos os tipos simultaneamente. Isso é útil para uma injeção de dependências segura quanto aos tipos.

<?php
function process(Iterator&Countable $collection): void {
    // $collection must be both Iterator AND Countable
}

Coerção de tipos versus strict_types

Sem declare(strict_types=1), o PHP pode realizar coerção de valores, como converter "42" em 42. Com o modo estrito, somente correspondências exatas de tipos são aceitas.

Resumo

O operador nullsafe (?->) elimina verificações de nulo repetitivas em cadeias. Os tipos união (int|string) permitem assinaturas de funções flexíveis e, ao mesmo tempo, seguras quanto aos tipos.

Verificação rápida

O que o operador nullsafe retorna se um método da cadeia retornar null?

Perguntas Frequentes

A aula “Operador nullsafe e tipos união” é grátis?

Sim — o texto completo de “Operador nullsafe e tipos união” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Operador nullsafe e tipos união”?

Use ?-> para encadear objetos anuláveis com segurança e declare dicas de tipo união. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Operador nullsafe e tipos união”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Expressão match e argumentos nomeados
  2. Operador nullsafe e tipos união
  3. Enumerações (Enums)
  4. Fibers: concorrência cooperativa
← Voltar para PHP Academy