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
- Expressão match e argumentos nomeados
- Operador nullsafe e tipos união
- Enumerações (Enums)
- Fibers: concorrência cooperativa