0Pricing
PHP Academy · Aula

Expressão match e argumentos nomeados

Substitua switch excessivamente detalhado por match e use argumentos nomeados para maior clareza.

Expressão match e argumentos nomeados é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 1 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.

A expressão match

O PHP 8.0 introduziu match, uma alternativa concisa ao switch que utiliza igualdade estrita (===) e retorna um valor.

match versus switch

Principais diferenças: match utiliza comparação estrita, não permite queda entre casos e é uma expressão que retorna um valor.

<?php
$status = 2;
$label = match($status) {
    1 => "active",
    2 => "inactive",
    3 => "banned",
    default => "unknown",
};
echo $label; // "inactive"

Várias condições por ramo

Separe vários valores de match com vírgulas para tratá-los com o mesmo resultado.

<?php
$code = 404;
$type = match($code) {
    200, 201, 202 => "success",
    400, 422      => "client error",
    404           => "not found",
    500, 503      => "server error",
    default       => "other",
};
echo $type; // "not found"

match lança uma exceção quando não há correspondência

Se nenhum ramo corresponder e não houver default, o PHP lançará um UnhandledMatchError, ao contrário de switch, que continua silenciosamente.

match como expressão

Como match retorna um valor, você pode utilizá-lo diretamente, como argumento de uma função, em uma instrução de retorno ou dentro de uma interpolação de cadeia de caracteres.

<?php
echo "Status: ".match($active) {
    true  => "ON",
    false => "OFF",
};

Argumentos nomeados

Os argumentos nomeados do PHP 8.0 permitem transmitir argumentos a uma função pelo nome do parâmetro, em qualquer ordem.

<?php
function makeTag(string $tag, string $content, string $class = ""): string {
    return "<$tag class=\"$class\">$content</$tag>";
}
echo makeTag(content: "Hello", tag: "p", class: "lead");

Benefícios dos argumentos nomeados

Os argumentos nomeados melhoram a legibilidade de funções com muitos parâmetros, permitem ignorar parâmetros opcionais e esclarecem o que cada valor representa.

Argumentos nomeados com funções incorporadas

Os argumentos nomeados também funcionam com as funções incorporadas do PHP.

<?php
$arr = [3, 1, 4, 1, 5];
$result = array_slice(array: $arr, offset: 1, length: 3, preserve_keys: true);

Combinação de argumentos nomeados e posicionais

Você pode combinar argumentos posicionais e nomeados, mas os argumentos nomeados devem vir depois dos posicionais.

<?php
str_contains(haystack: "Hello World", needle: "World");
// or positional then named:
str_contains("Hello World", needle: "World");

Argumentos nomeados em array_map

Os argumentos nomeados são particularmente úteis com funções incorporadas variádicas que têm uma ordem de parâmetros confusa.

match em código real

Substitua cadeias longas de if/elseif por match para roteamento de métodos HTTP, mapeamento de códigos de status e decisões semelhantes às de enumerações.

<?php
$handler = match($_SERVER["REQUEST_METHOD"]) {
    "GET"    => new GetHandler(),
    "POST"   => new PostHandler(),
    "DELETE" => new DeleteHandler(),
    default  => throw new InvalidArgumentException("Unsupported method"),
};

Resumo

match fornece ramificações estritas, exaustivas e sem queda entre casos. Os argumentos nomeados melhoram a legibilidade no ponto de chamada. Ambos são melhorias importantes do PHP 8.0.

Verificação rápida

O que acontece quando nenhum ramo de match corresponde e não há um valor padrão?

Perguntas Frequentes

A aula “Expressão match e argumentos nomeados” é grátis?

Sim — o texto completo de “Expressão match e argumentos nomeados” é 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 “Expressão match e argumentos nomeados”?

Substitua switch excessivamente detalhado por match e use argumentos nomeados para maior clareza. 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 1 de 4.

Quanto tempo leva a aula “Expressão match e argumentos nomeados”?

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