Конструк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

php$result = match ($value) {
  condition1 => result1,
  condition2 => result2,
  ...
  default => default_result
};

Ejemplo

Coincidencia simple de un número:

php<?php
  $res = match (2) {
    1 => 'Uno',
    2 => 'Dos',
    3 => 'Tres',
    default => 'Desconocido'
  };
  echo $res;
?>

Resultado de la ejecución del código:

php'Dos'

Ejemplo

Coincidencia con múltiples condiciones:

php<?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:

php'Adulto'

Ejemplo

Uso con arrays:

php<?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:

php'Primera secuencia'

Ver también

  • la declaración switch,
    que proporciona una forma alternativa de ramificación
  • la declaración if,
    que ejecuta declaraciones condicionales