A estrutura match
A estrutura match foi introduzida no PHP 8.0 e fornece uma maneira mais concisa e segura de fazer ramificações em comparação com o switch. Ela recebe uma expressão para comparação e retorna o valor da primeira condição correspondente. Diferente do switch, o match realiza uma comparação estrita (===) e não requer break.
Sintaxe
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Exemplo
Correspondência simples de um número:
<?php
$res = match (2) {
1 => 'Um',
2 => 'Dois',
3 => 'Três',
default => 'Desconhecido'
};
echo $res;
?>
Resultado da execução do código:
'Dois'
Exemplo
Correspondência com múltiplas condições:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Criança',
$age >= 18 && $age < 65 => 'Adulto',
$age >= 65 => 'Idoso'
};
echo $res;
?>
Resultado da execução do código:
'Adulto'
Exemplo
Uso com arrays:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Primeira sequência',
[4, 5, 6] => 'Segunda sequência',
default => 'Outra sequência'
};
echo $res;
?>
Resultado da execução do código:
'Primeira sequência'