Estructuras condicionales
La condición simple se realiza mediante la instrucción if. Entre paréntesis se pone la condición que se evalua a true o false. Si no se ponen llaves, en vez de abrir un bloque, se ejecutará sólo la siguiente instrucción.
Es recomendable poner llaves siempre aunque en el momento de codificar sólo haya una única instrucción. De este modo, se queda preparado para añadir más contenido en el futuro sin provocar bugs.
<?php
$hora = 8; // La hora en formato de 24 horas
if ($hora === 8) {
echo "Suena el despertador.";
}
echo "<br>";
if ($hora === 8)
echo "Suena el despertador.";
?>
Las condiciones compuesta mediante if-else:
<?php
$hora = 17; // La hora en formato de 24 horas
if ($hora <= 12) {
echo "Son las " . $hora . " de la mañana";
} else {
echo "Son las " . ($hora - 12) . " de la tarde";
}
?>
Las condiciones anidadas mediante if-else if-else:
<?php
$hora = 14; // La hora en formato de 24 horas
if ($hora === 8) {
echo "Es la hora de desayunar.";
} else if ($hora === 14) {
echo "Es la hora de la comida.";
} else if ($hora === 21) {
echo "Es la hora de la cena.";
} else {
echo "Ahora no toca comer.";
}
?>
La sentencia switch también permite trabajar con condiciones múltiples:
<?php
$hora = 14; // La hora en formato de 24 horas
switch ($hora) {
case 9:
echo "Es la hora de desayunar.";
break;
case 14:
echo "Es la hora de la comida.";
break;
case 21:
echo "Es la hora de la cena.";
break;
default:
echo "Ahora no toca comer";
}
?>
breakUn error muy común es olvidar la instrucción break tras cada caso. Si no lo ponemos, ejecutará el siguiente caso automáticamente.
Finalmente, también tenemos el operador ternario condición ? valorTrue : valorFalse:
<?php
$hora = 14;
$formato = ($hora > 12) ? 24 : 12;
echo "El formato es de $formato horas"
?>
Si queremos comprobar si una variable tiene valor y si no darle un valor determinado, usaremos el operador ?: (se conoce como el operador Elvis) con la sintáxis expresión ?: valorSiVacio:
<?php
$nombre = $_GET['nombre'] ?: "desconocido"
?>