Haz que tus scripts reaccionen con if y match, y luego repite acciones con for, foreach y while.
Abrir esta lección en KodokonUna condición permite al script elegir un camino: "si esto es verdadero, haz aquello; si no, haz otra cosa". La palabra clave if evalúa una expresión que da true o false, usando los operadores de comparación: > (mayor que), < (menor que), >=, <=, === (igual, mismo valor Y mismo tipo) y !== (distinto). elseif añade otra prueba si la anterior falló, y else se ejecuta cuando ninguna prueba tuvo éxito. Las pruebas se leen de arriba abajo: gana la primera que sea verdadera.
<?php
$temperature = 12;
if ($temperature > 25) {
echo "It's hot.";
} elseif ($temperature > 15) {
echo "It's mild.";
} else {
echo "Grab a jacket!";
}Cuando comparas la misma variable con varios valores concretos, la expresión match es más elegante. Compara la variable con cada caso (comparación estricta, valor y tipo) y devuelve un valor directamente, que puedes almacenar en una variable. El caso default actúa como red de seguridad cuando ningún valor coincide.
<?php
$day = "saturday";
$message = match ($day) {
"saturday", "sunday" => "It's the weekend!",
"monday" => "Hang in there, back to work.",
default => "Have a good weekday.",
};
echo $message;Un bucle repite un bloque de instrucciones varias veces, sin copiar y pegar el código. El bucle for es ideal cuando conoces de antemano el número de vueltas. Se lee en tres partes, separadas por punto y coma: el inicio ($i = 1), la condición de continuación ($i <= 5, sigue mientras esto sea verdadero) y el paso ($i++, que suma 1 a $i en cada vuelta).
<?php
for ($i = 1; $i <= 5; $i++) {
echo "Round number {$i}<br>";
}Otros dos bucles completan la caja de herramientas. foreach recorre un array (una lista de valores, que veremos en la próxima lección) y te entrega cada elemento uno tras otro. while repite su bloque mientras su condición siga siendo verdadera: depende de ti cambiar la situación dentro del bucle para que acabe deteniéndose.
<?php
$fruits = ["apple", "pear", "kiwi"];
foreach ($fruits as $fruit) {
echo "Fruit: {$fruit}<br>";
}
$countdown = 3;
while ($countdown > 0) {
echo "{$countdown}...<br>";
$countdown--;
}
echo "Go!";else?match de if?while se queda verdadera para siempre?