Конструкura match
La construcción match apareció en PHP 8.0 y proporciona una forma más breve y segura de ramificación en comparación con switch. Toma una expresión para comparar y devuelve el valor de la primera condición coincidente. A diferencia de switch, match realiza una comparación estricta (===) y no requiere break.
Sintaxis
$result = match ($value) {
condition1 => result1,
condition2 => result2,
...
default => default_result
};
Ejemplo
Coincidencia simple de un número:
<?php
$res = match (2) {
1 => 'Uno',
2 => 'Dos',
3 => 'Tres',
default => 'Desconocido'
};
echo $res;
?>
Resultado de la ejecución del código:
'Dos'
Ejemplo
Coincidencia con múltiples condiciones:
<?php
$age = 25;
$res = match (true) {
$age < 18 => 'Niño',
$age >= 18 && $age < 65 => 'Adulto',
$age >= 65 => 'Anciano'
};
echo $res;
?>
Resultado de la ejecución del código:
'Adulto'
Ejemplo
Uso con arrays:
<?php
$arr = [1, 2, 3];
$res = match ($arr) {
[1, 2, 3] => 'Primera secuencia',
[4, 5, 6] => 'Segunda secuencia',
default => 'Otra secuencia'
};
echo $res;
?>
Resultado de la ejecución del código:
'Primera secuencia'