Expresión match y argumentos con nombre
Sustituya switch demasiado extensos por match y utilice argumentos con nombre para mayor claridad.
Expresión match y argumentos con nombre es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
La expresión match
PHP 8.0 introdujo match, una alternativa concisa a switch que utiliza igualdad estricta (===) y devuelve un valor.
match frente a switch
Diferencias principales: match utiliza comparación estricta, no permite continuar automáticamente con la siguiente rama y es una expresión que devuelve un valor.
<?php
$status = 2;
$label = match($status) {
1 => "active",
2 => "inactive",
3 => "banned",
default => "unknown",
};
echo $label; // "inactive"Varias condiciones por rama
Separe varios valores de match con comas para gestionarlos con el mismo 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 lanza una excepción si no hay coincidencias
Si ninguna rama coincide y no existe un default, PHP lanza un UnhandledMatchError, a diferencia de switch, que continúa en silencio.
match como expresión
Como match devuelve un valor, puede utilizarlo directamente como argumento de una función, en una sentencia return o dentro de una interpolación de cadenas.
<?php
echo "Status: ".match($active) {
true => "ON",
false => "OFF",
};Argumentos con nombre
Los argumentos con nombre de PHP 8.0 permiten pasar argumentos a una función mediante el nombre del parámetro y en cualquier orden.
<?php
function makeTag(string $tag, string $content, string $class = ""): string {
return "<$tag class=\"$class\">$content</$tag>";
}
echo makeTag(content: "Hello", tag: "p", class: "lead");Ventajas de los argumentos con nombre
Los argumentos con nombre mejoran la legibilidad de las funciones con muchos parámetros, permiten omitir parámetros opcionales y aclaran qué representa cada valor.
Argumentos con nombre con funciones integradas
Los argumentos con nombre también funcionan con las funciones integradas de PHP.
<?php
$arr = [3, 1, 4, 1, 5];
$result = array_slice(array: $arr, offset: 1, length: 3, preserve_keys: true);Combinación de argumentos con nombre y posicionales
Puede combinar argumentos posicionales y con nombre, pero los argumentos con nombre deben aparecer después de los posicionales.
<?php
str_contains(haystack: "Hello World", needle: "World");
// or positional then named:
str_contains("Hello World", needle: "World");Argumentos con nombre en array_map
Los argumentos con nombre son especialmente útiles con funciones integradas variádicas que tienen un orden de parámetros confuso.
match en código real
Sustituya cadenas largas de if/elseif por match para enrutar métodos HTTP, asignar códigos de estado y tomar decisiones similares a las de un enum.
<?php
$handler = match($_SERVER["REQUEST_METHOD"]) {
"GET" => new GetHandler(),
"POST" => new PostHandler(),
"DELETE" => new DeleteHandler(),
default => throw new InvalidArgumentException("Unsupported method"),
};Resumen
match proporciona bifurcaciones estrictas, exhaustivas y sin continuación automática entre ramas. Los argumentos con nombre mejoran la legibilidad en el punto de llamada. Ambas son mejoras importantes de PHP 8.0.
Comprobación rápida
¿Qué ocurre cuando ninguna rama de match coincide y no existe un default?
Preguntas frecuentes
¿La lección «Expresión match y argumentos con nombre» es gratis?
Sí — el texto completo de «Expresión match y argumentos con nombre» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Expresión match y argumentos con nombre»?
Sustituya switch demasiado extensos por match y utilice argumentos con nombre para mayor claridad. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Expresión match y argumentos con nombre»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Expresión match y argumentos con nombre
- Operador nullsafe y tipos unión
- Enumeraciones (Enums)
- Fibers: concurrencia cooperativa