Sei sulla pagina 1di 6

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

Sentencias de control
Las sentencias de control permiten ejecutar bloque de cdigos dependiendo de unas condiciones. Para PHP el 0 es equivalente a Falso y cualquier otro nmero es Verdadero.

IF...ELSE
La sentencia IF...ELSE permite ejecutar un bloque de instrucciones si la condicin es Verdadera y otro bloque de instrucciones si sta es Falsa. Es importante tener en cuenta que la condicin que evaluemos ha de estar encerrada entre parntesis (esto es aplicable a todas las sentencias de control). if (condicin) { Este bloque se ejecuta si la condicin es VERDADERA } else { Este boque se ejecuta si la condicin es FALSA } Existe una forma sencilla de usar la sentencia IF cuando no tenemos que usar el ELSE y slo tenemos que ejecutar una lnea de cdigo. Ejemplo If.php: $a = 6; if ($a > 4) echo "$a es mayor que 4";

IF...ELSEIF...ELSE
La sentencia IF...ELSEIF...ELSE permite ejecuta varias condiciones en cascada. Para este caso veremos un ejemplo, en el que utilizaremos los operadores lgicos. Ejemplo Elseif.php: <?php $nombre = "raquel"; if ($nombre == ""){ echo "T no tienes nombre"; } elseif (($nombre=="eva") OR ($nombre=="Eva")) { echo "Tu nombre es EVA"; } else { echo "Tu nombre es " . $nombre; } ?>

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

SWITCH...CASE...DEFAULT
Una alternativa a IF...ELSEIF...ELSE, es la sentencia SWITCH, la cul evala y compara cada expresin de la sentencia CASE con la expresin que evaluamos, si llegamos al final de la lista de CASE y no encuentra una condicin Verdadera, ejecuta el cdigo de bloque que haya en DEFAULT. Si encontramos una condicin verdadera debemos ejecutar un BREAK para que la sentencia SWITCH no siga buscando en la lista de CASE. Ejemplo Switch.php: <?php $dia = "Domingo"; switch ($dia) { case "Lunes": echo "Hoy es Lunes"; break; case "Martes": echo "Hoy es Martes"; break; case "Mircoles": echo "Hoy es Mircoles"; break; case "Jueves": echo "Hoy es Jueves"; break; case "Viernes": echo "Hoy es Viernes"; break; case "Sbado": echo "Hoy es Sbado"; break; case "Domingo": echo "Hoy es Domingo"; break; default: echo "Esa cadena no corresponde a ningn da de la semana"; } ?>

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

WHILE
La sentencia WHILE ejecuta un bloque de cdigo mientras se cumpla una determinada condicin. Ejemplo While.php: <?php $num = 1; while ($num < 5) { echo $num; $num++; } ?> Podemos romper un bucle WHILE utilizando la sentencia BREAK. Ejemplo Break.php: <?php $num = 1; while ($num < 5) { echo "$num <br>"; if ($num == 3){ echo "Aqu nos salimos"; break; } $num++; } ?>

DO...WHILE
Esta sentencia es similar a WHILE, salvo que con esta sentencia primero ejecutamos el bloque de cdigo y despus se evala la condicin, por lo que el bloque de cdigo se ejecuta siempre al menos una vez. Ejemplo DoWhile.php: <?php $num = 1; do { echo "$num <br>"; if ($num == 3){ echo "Aqu nos salimos"; break; } num++; } while ($num < 5); ?>

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

FOR
El bucle FOR no es estrictamente necesario, cualquier bucle FOR puede ser sustituido fcilmente por otro WHILE. Sin embargo, el bucle FOR resulta muy til cuando debemos ejecutar un bloque de cdigo a condicin de que una variable se encuentre entre un valor mnimo y otro mximo. El bucle FOR tambin se puede romper mediante la sentencia BREAK. Ejemplo For.php: <?php for ($num = 1; $num <=5; $num++){ echo "$num <br>"; if ($num == 3){ echo "Aqu nos salimos"; break; } } ?>

BREAK y CONTINUE
El camino ordinario para salir de un bucle es que la condicin se evale a false. Existe una forma especial de salir de un bucle, utilizando las palabras reservadas break y continue. Su forma de actuar es la siguiente:

break: Sale del bucle actual y contina el programa. continue: Salta hasta el final de la interaccin y contina la ejecucin desde el
principio del bucle. El cdigo siguiente muestra la forma de utilizar break: Ejemplo Break2.php: <?php for ($x = 1; $x < 20; $x++) { if ($x == 10) { break; } else { echo "$x<br>"; } } ?>

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

La salida por pantalla es una sucesin de nmeros del 1 al 9. Al llegar la variable $x al nmero 10, la condicin del if se cumple y se ejecuta la instruccin break, saliendo del bucle. El mismo ejemplo, pero utilizando continue: Ejemplo Continue.php: <?php for ($x = 1; $x < 20; $x++) { if ($x == 10) { continue; } else { echo "$x<br>"; } } ?> En este caso, cuando $x alcanza el valor 10, lo que hace la instruccin continue es ir hacia el final de bucle y volver al principio comprobando la condicin. El resultado por pantalla es una sucesin de nmeros desde el 1 hasta el 19, sin incluir el nmero 10.

Finalizar la ejecucin de un programa


Hay veces que necesitamos parar la ejecucin de un programa por diversas causas: ha ocurrido un error, un fallo en la entrada del nombre y la contrasea La funcin para detener la ejecucin es exit() o die(). Estas dos funciones aceptan un parmetro que se imprime en pantalla. Por ejemplo, el siguiente cdigo realiza la conexin a una base de datos: Ejemplo Funcion_Die.php: <?php $conexion = mysql_connect("libros"); if ( !$conexion) { die ("Se ha producido algn error en la conexin"); } ?> Se puede apreciar que si la variable $conexin se evala false (no se ha conseguido la conexin), se detiene la ejecucin del programa. Una versin ms compacta se consigue utilizando el operador or: Ejemplo Funcion_Die2.php: <?php $conexion = mysql_connect("libros") or die ("Se ha producido algn error en la conexin"); ?>

ASIX Mdulo 9

UF 1: Lenguaje de guin de servidor

Sintaxis alternativa
Algunas estructuras de control pueden escribirse de una forma distinta. Las estructuras if, while, for y switch pueden escribirse sustituyendo la llave de inicio por un smbolo de dos puntos (:) y la llave de cierre por endif, endwhile, endfor y endswitch, respectivamente. Como ejemplo podemos ver la estructura if: Ejemplo Sintaxi_Alternativa.php: <?php $variable = 10; if ($variable == 10) { echo "Nueva estructura de control"; } ?> El cdigo siguiente es equivalente al anterior: <?php $variable = 10; if ($variable == 10): echo "Nueva estructura de control"; endif; ?>

Potrebbero piacerti anche