Bucles y Condiciones
-Condición IF
Es la condicion básica de PHP, se ejecuta de la misma manera que en Java o C++. IF evalua una expresion (expr) y verifica si se cumple o no (dependiendo de esta), en caso que se cumpla, se ejecuta el código que esta dentro de esta condicion.
Se puede utilizar de las siguientes maneras:
//Una sola sentencia
-if(expr)
sentencia;
//Bloque de código
-if(expr){
sentencia1;
sentencia2;
.
.
.
sentenciaN;
}
-Condicion IF-ELSE
Esta condición es igual que la anterior, solo que en caso que no se cumpla la primera expresión del IF, se ejecuta el bloque de codigo de ELSE. Funciona igual que la expresion IF-ELSE que en Java.
Se emplea de la siguiente manera
-if(expr){
sentencia1;
sentencia2;
.
.
.
sentenciaN;
}
else{
sentencia1;
.
.
.
sentenciaN;
}
-IF-ELSE anidados
De la misma manera se puede anidar IF-ELSE, ya sea dentro de un IF o el ELSE, es mas recomendable hacerlo dentro del ELSE.
-if(expr){
sentencia1;
sentencia2;
.
.
.
sentenciaN;
}
else{
if(expr2){
sentencia1;
.
.
.
sentenciaN;
}
else{
sentencia1;
.
.
.
sentenciaN;
}
No es muy recomendable anidar demasiados IF-ELSE, ya que nuestro código pierde legibilidad, pero si no se puede evitar siempre es aconsejable insertar un comentario para saber lo que se esta evaluando.
-ELSEIF
Funciona de la misma manera que la anterior, solo varia en el ELSE
-if(expr){
sentencia1;
.
.
.
sentenciaN;
}
elseif(expr2){
sentencia1;
.
.
.
sentenciaN;
}
else{
sentencia1;
.
.
.
sentenciaN;
}
Notar que el segundo ELSE pertenece al ELSEIF
-Condicion SWITCH
Esta condicion nos permite evaluar una sentencia contra los posibles valores que pueda tomar, es mucho mas practico que anidar una cantidad considerable de IF-ELSE. Su forma es la siguiente:
-switch(variable){
case 0:
sentencia;
break;
case 1:
sentencia;
break;
case 2:
sentencia;
break;
}
Esto es para el caso de variables numéricas, aunque tambien puede validar variables de caracteres.
Los cases pueden estar vacios, lo cual no producirá errores, simplemente los saltará. La palabra ‘break’ sirve para que se interrumpa la ejecucion del código y el apuntador salte al final de la condicion switch.
Otro caso de SWITCH es el caso DEFAULT, que se activa cuando ninguna condicion es cierta.
-switch(variable){
case 0:
sentencia;
break;
case 1:
sentencia;
break;
case 2:
sentencia;
break;
default:
sentencia;
break;
}
-BREAK
Esta palabra reservada nos sirve para abandonar un bloque de código, tal como el caso del switch. Tambien es utilizado para salir o ‘quebrar’ los bucles iterativos. También acepta un parametro numérico opcional, el cual le indica cuantos niveles tiene que abandonar. Ejemplo:
-while($i < 10){
-switch(variable){
case 0:
sentencia;
break;
case 1:
sentencia;
break; //SAle del switch
case 2:
sentencia;
break 1; //Sale del switch
default:
sentencia;
break 2; //Sale del switch y del while
}
$i++; //incremento de la variable $i
}
Esto significa que cuando la variable $i llega a 3, automaticamente ejecuta el default y rompe ambos ciclos switch y while, y su valor queda en 3.
BUCLES
Los bucles son estructuras que nos permiten repetir un cierto bloque de código durante ciertas veces. Un bucle, sea cual sea siempre debe tener una expresion, la cual nos indicara si entra al bucle o no, y una condicion de salida, un contador que llegue a un límite o que decremente a 0 u otro limite, tambien puede ser que una variable cambie de valor. Sea cual sea esta condicion de salida se debe llegar a ejecutar alguna vez para evitar los bucles infinitos.
-WHILE
El bucle WHILE es el mas sencillo dentro de PHP, evalua al principio una expresion y si se cumple entra al ciclo, el cual se ejecutara mientras la expresion siga siendo verdadera. Consta de lo siguiente:
-while(expr){
sentencia1;
.
.
.
sentenciaN;
}
Tambien se puede usar de la siguiente manera:
-while(expr):
sentencia1;
.
.
.
sentenciaN;
endwhile;
-DO…WHILE
Es una variante del WHILE, solo que aqui se ejecuta primero el bloque de codigo y despues se evalua la expresion, dando como resultado que entrara a dicho código al menos una vez.
-do{
sentencia1;
sentencia2;
sentencia3;
sentencia4;
…
sentenciaN;
}
while(expr);
-FOR
Estos bucles son algo complejos, tienen en vez de una expresion, tres expresiones que evaluar. Funcionan tal como el ciclo FOR de Java o C++.
-for(expr1; expr2; expr3){
sentencia1;
.
.
.
sentenciaN;
}
Para que quede mas en claro,lo emplearemos de la forma clasica…
-for($i = 0; $i < 10; $i++){
echo(“<h1>Holaaaaaa “.$i.”</h1>”);
}
Esto nos da por resultado una salida en HTML (con el comando echo que se verá mas adelante en este capitulo) con la palabra Holaaaaaa 0… hasta el Holaaaaaa 9.
-FOREACH
Este ciclo funciona para recorrer arreglos (array) de una manera mas facil, sin emplear otro bucle, aunque su funcionamiento es igual. Se emplea de la siguente manera:
-foreach(arreglo as $valor){
sentencia1;
.
.
.
sentenciaN;
}
Funciona recorriendo el arreglo y copiando cada elemento a la variable $valor, para que despues se use en vez del elemento original del valor, POR LO QUE EL ARREGLO QUEDA INTACTO y solo se emplea una copia de este. Para que quede mas claro se da este ejemplo:
<?php
//Llenado del arreglo
$arreglo_nombres[0] = “daniel”;
$arreglo_nombres[1] = “dulce”;
$arreglo_nombres[2] = “asereje”;
/*Creación de la página dinámica con PHP
La función echo nos permite mandar el flujo de caracteres hacia la página*/
echo(“<html><head><title>Pagina de Nombres</title></head><body>”);
echo(“<h1>Letras de Nombres</h1>”);
foreach($arreglo_nombres as $nombre){
echo(“<h3>”.$nombre.”</h3>”);
}
echo(“</body></html>”);
?>
Como se puede dar cuenta, es una página entera en PHP, El resultado será una pagina en HTML con un Header 1 que dice: Letras de Nombres y tres headers 3 con los nombres del arreglo.
Instruccion ECHO
Esta instruccion nos permite enviar hacia una pagina Web dinamica creada con PHP (o que se esta creando) un flujo de caracteres para crearla. Funciona de la misma manera que la funcion System.out.println() en Java o printf() en C++, solo que en vez de imprimir en la consola, lo hace en un documento HTML. El parametro que recibe es la cadena de caracteres, la cual puede contener obviamente las variables u otros objetos que deseemos pasar.
Tal como el ejemplo anterior, si queremos incluir HTML este debe ir dentro de la funcion ECHO, como si se tratase de una cadena.
Esto es hasta lo básico de los bucles en PHP, se incluye una carpeta en ZIP la cual incluye ejemplos detallados del funcionamiento de los ciclos. Esta carpeta se debe descomprimir en el directorio “www” de la carpeta donde esta instalado el servidor WAMP.
