Las sentencias de control son aquellas que permiten ejecutar una serie de sentencias dependiendo de la evaluación de ciertos parámetros o criterios. Ésto es, condicionales y bucles.
Con la sentencia If... Else podemos ejecutar un conjunto de operaciones si la condición es verdadera y otro distinto si es falsa. En todas las sentencias de control, la condición debe ir entre paréntesis.
<?PHP //Si la variable $a es igual a 1 if ($a == 1) { //Éste bloque se ejecuta si la condición es verdadera } else { //Éste bloque se ejecuta si la condición es falsa } ?>
El else es opcional, si solo queremos ejecutar unas operaciones si la condición es verdadera no lo contemplaremos, y además podremos escribir la forma corta del If (solo si no contiene la clausula else):
<?PHP ?>
Ésta sentencia permite contemplar múltiples condiciones, y no solo 2 como la anterior. La condición Elseif puede aparecer tantas veces como queramos:
<?PHP //Si $a es igual a 1 if ($a == 1) { //Código //Si $a es igual a 2 } elseif ($a == 2) { //Código //Si $a es igual a 3 } elseif ($a == 3) { //Código //Si $a es igual a 4 } elseif ($a == 4) { //Código //Si $a tiene cualquier valor distinto de los anteriores //El else final es opcional } else { //Código } ?>
Ésta sentencia es equivalente a If... Elseif... Else. En el Switch especificamos el parámetro a evaluar; en las sentencias Case se contemplan los posibles valores, ejecutándose el correcto, si ninguno es correcto, se ejecuta el código del Default.
<?PHP switch ($a) { //Si el valor de $a es 1 case "1": echo "El valor es 1"; break; //Si el valor de $a es 2 case "2": echo "El valor es 2"; break; //Si el valor de $a es 3 case "3": echo "El valor es 3"; break; //Si el valor de $a es 4 case "4": echo "El valor es 4"; break; //Si ninguno de los anteriores es cierto default: echo "Se ha ejecutado el default"; } ?>
Después del código de cada case, se encuentra la orden break, esta orden se utiliza para que una vez se haya encontrado el case verdadero y ejecutado el código correspondiente, salgamos del switch sin seguir comprobando el resto de sentencias case. La sentencia break fuerza a terminar la ejecución de la sentencia de control, en cualquier sentencia de control.