La expresión match() en PHP – Usar condiciones

Hay una última cosa interesante de la expresión match() que le da mucha flexibilidad; el uso de condiciones en lugar de valores.

Ojo, que para poder usar condiciones es imprescindible usar true como el «valor a analizar» (vamos, el valor que le pasamos a match).

Por ejemplo, podemos hacer ésto:

$precio = 60;

$gastosEnvio = match (true) {
    $precio < 50 => COSTE_ENVIO_NORMAL,
    $precio >=50 && $precio < 300 => COSTE_ENVIO_REDUCIDO,
    $precio >= 300 => 1,
};

echo $gastosEnvio . PHP_EOL;

O escrito de otra forma más sencilla:

$gastosEnvio = match (true) {
$precio >= 300 => 1,
$precio >=50 => COSTE_ENVIO_REDUCIDO,
$precio < 50 => COSTE_ENVIO_NORMAL,
};

echo $gastosEnvio . PHP_EOL;

Cuidado que no vale pasarle un 1 en lugar de true porque nos va a dar un error.

He probado a pasar false en lugar de true y no te saca un error, te escoge una de las opciones pero aún no he descifrado por qué.

Deja un comentario