En las expresiones match() también podemos usar funciones como valores de retorno (un valor de retorno es lo que nos devuelve match en cada una de sus líneas).
Por ejemplo:
function doble($valor) { return $valor * 2; } function triple($valor) { return $valor * 3; } $factor = 'doble'; $numero = 10; $resultado = match ($factor) { 'doble' => doble($numero), 'triple' => triple($numero), default => $numero, }; echo "$resultado" . PHP_EOL;
Puedes ver en este absurdo ejemplo que estamos usando las funcions doble() y triple() como valores que devuelve matc().
Si usa de estas funciones no devolviera nada no tendríamos un error pero el resultado sería absurdo.
Por ejemplo:
function doble($valor) {
$valor * 2;
}
function triple($valor) {
return $valor * 3;
}
$factor = 'doble';
$numero = 10;
$resultado = match ($factor) {
'doble' => doble($numero),
'triple' => triple($numero),
default => $numero,
};
var_dump($resultado);
Aquí doble no devuelve ningún valor y $resultado tomaría el valor null. Esto puede ser fuente de problemas así que ojito.
¿Sabes lo que es el reto de PHP?
He creado el PHP Journey, una plataforma para que recibas de forma gratuita un email cada día con una pequeña perla de sabiduría de PHP y una pregunta que deberás responder.
Cada día pones a prueba tus conocimientos y aprendes algo nuevo.
Apúntate aquí:
https://urlantools.urlanheat.com/newsletter/php-journey/subscribe