Estructuras de control PHP: IF ELSE
- if…else
La estructura if…else permite ejecutar un bloque de instrucciones si la condición es TRUE y otro bloque de instrucciones si es FALSE. Las estructuras if…else se pueden anidar. La sintaxis es:
<?php if (condicion) { // este bloque se ejecuta si condicion es TRUE } else { // este boque se ejecuta si condicion es FALSE } ?>
Ejemplo:
<?php $a = 10; $b = 5; if ($a > $b) { echo $a." es mayor que ".$b; } else { echo $a." no es mayor que ".$b; } // mostrara "10 es mayor que 5" ?>
Estructuras de control PHP: IF ELSEIF ELSE
- if…elseif…else
La estructura if…elseif…else permite ejecutar varias condiciones if en cascada. La sintaxis es:
<?php if (condicion1) { // este bloque se ejecuta si condicion1 es TRUE } elseif (condicion2) { // este boque se ejecuta si condicion1 es FALSE y condicion2 TRUE } else { // este boque se ejecuta si condicion1 y condicion2 son FALSE } ?>
Ejemplo:
<?php $nombre = "ana"; if ($nombre == ""){ echo "tu no tienes nombre"; } elseif ($nombre == "eva") { echo "tu nombre es eva"; } else { echo "tu nombre es ".$nombre; } // mostrara "tu nombre es ana" ?>
Veamos por ejemplo un rotador de anunciantes:
<?php // rotador de anunciantes porcentajes 20, 60, 20 // generar un numero aleatorio entre 0 y 100 (inclusive) $random = rand(0,100); // seleccionar el anunciante segun el porcentaje deseado if (($random >= 0) AND ($random <= 20)) { ?> <!-- codigo HTML del anunciante 1 --> <?php } elseif (($random > 20) AND ($random <= 80)) { ?> <!-- codigo HTML del anunciante 2 --> <?php } else { ?> <!-- codigo HTML del anunciante 3 --> <?php } ?>
Estructuras de control PHP: WHILE
- while
La estructura while ejecuta un bloque de código mientras se cumpla una condición. El valor de la condición es comprobado cada vez al principio del bucle, de manera que PHP ejecutará el código repetidamente mientras la condición se evalúe como TRUE. Si la condición se evalúa como FALSE la primera vez el código no se ejecutará ni una sola vez. Podemos romper un ciclo while con la sentencia break. La sintaxis es:
<?php while (condicion) { // este bloque se ejecuta mientras condicion sea TRUE } ?>
Ejemplo:
<?php $num = 1; while ($num < 5) { echo $num."<br />"; if ($num == 3){ echo "aqui nos salimos, hemos llegado a ".$num; break; } $num++; } // mostrara numeros del 1 al 3 inclusive ?>
Estructuras de control PHP: DO WHILE
- do…while
Esta estructura es similar a while, salvo que con do…while primero se ejecuta el bloque de código y después se evalúa la condición, por lo que el código siempre se ejecuta al menos una vez.
<?php $num = 1; do { echo $num."<br />"; if ($num == 3){ echo "aqui nos salimos, hemos llegado a ".$num; break; } $num++; } while ($num < 5); // mostrara numeros del 1 al 3 inclusive ?>
Estructuras de control PHP: SWITCH CASE
- switch…case…default
Una alternativa a if…elseif…else es la estructura switch, la cuál evalúa y compara la variable de la condición con el valor de case: si encuentra una condición TRUE ejecuta ese bloque de código, al final del cual debemos colocar un break para que no siga buscando. Si llega al final de la lista case y no ha encontrado una condición TRUE ejecuta el código que haya en default. La sintaxis es:
<?php switch ($variable) { case "valor1": // este boque se ejecuta si $variable == valor1 break; case "valor2": // este boque se ejecuta si $variable == valor2 break; default: // este boque se ejecuta si $variable != valor1 y valor2 } ?>
Ejemplo:
<?php $usuario = "pepe"; switch ($usuario) { case "juan": echo "el usuario es juan"; break; case "luis": echo "el usuario es luis"; break; case "miguel": echo "el usuario es miguel"; break; default: echo "usted no es un usuario valido"; } // mostrara "usted no es un usuario valido" ?>
Si necesitamos un case OR haremos "falling through" prescindiendo de la sentencia break:
<?php $usuario = "pepe"; switch ($usuario) { case "juan": case "luis": case "pepe": echo "el usuario es juan, luis o pepe"; break; case "miguel": echo "el usuario es miguel"; break; default: echo "usted no es un usuario valido"; } // mostrara "el usuario es juan, luis o pepe" ?>
Estructuras de control PHP: FOR
- for
La estructura for se utiliza para ejecutar un bloque de código con la condición de que una variable se encuentre entre un valor mínimo y otro máximo. La expresión expr1 se evalúa una vez al principio del bucle. Al comienzo de cada iteración se evalúa expr2: si es TRUE el bucle continúa y el código se ejecuta. Si es FALSE la ejecución del bucle finaliza. Al final de cada iteración se ejecuta expr3. El bucle se puede romper con break. La sintaxis es:
<?php for (expr1; expr2; expr3) { // este boque se ejecuta si valor_min < $variable < valor_max } ?>
Ejemplo:
<?php for ($i = 1; $i <= 5; $i++){ echo $i."<br />"; if ($i == 3){ echo "aqui nos salimos, hemos llegado a: ".$i; break; } } // mostrara numeros del 1 al 3 inclusive ?>
Estructuras de control PHP: FOREACH
- foreach
La estructura foreach permite iterar sobre matrices y recorrer sus elementos. Cuando foreach comienza su ejecución el puntero interno se reinicia al primer elemento de la matriz. En cada iteración el valor del elemento actual se asigna a $value, la clave a $key y el puntero avanza una unidad. La sintaxis es:
<?php foreach($arr as $key => $value) { // este boque se ejecuta para cada elemento del array } ?>
Por ejemplo, para recorrer todos los elementos de una matriz haremos:
<?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { echo $value."<br />"; } // mostrara "1 2 3 4" ?>
Para recorrer los elementos de una matriz de índice numérico haremos:
<?php $arr = array("one", "two", "three"); foreach($arr as $index => $value ) { echo '$a['.$index."] = ".$value."<br />"; } // mostrara "$a[0] = one $a[1] = two $a[2] = three" ?>
Recursos
- Ayuda de PHP: Control Structures