Ir al contenido principal

Primeros pasos con PHP: Estructuras de Control



Todo archivo de comandos PHP se compone de una serie de sentencias. Una sentencia puede ser una
asignación, una llamada a función, un bucle, una sentencia condicional e incluso una sentencia que no haga nada (una sentencia vacía). Las sentencias normalmente acaban con punto y coma. Además, las sentencias se pueden agrupar en grupos de sentencias encapsulando un grupo de sentencias con llaves. Un grupo de sentencias es también una sentencia.

Sentencia if:

La construcción if es una de las más importantes características de muchos lenguajes, incluido PHP.
Permite la ejecución condicional de fragmentos de código. PHP caracteriza una estructura if que es
similar a la de C:


<?php
if (expr)
sentencia
?>

Como se describe en la sección sobre expresiones, expr se evalúa a su valor condicional. Si expr se
evalúa como TRUE, PHP ejecutará la sentencia, y si se evalúa como FALSE - la ignorará.
El siguiente ejemplo mostraría a es mayor que b si $a fuera mayor que $b:

<?php
if ($a > $b) {
print "a es mayor que b";
$b = $a;
}
?>

Las sentencias if se pueden anidar indefinidamente dentro de otras sentencias if, lo cual proporciona
una flexibilidad completa para ejecuciones condicionales en las diferentes partes de tu programa.

Sentencia else

A menudo queremos ejecutar una sentencia si se cumple una cierta condicion, y una sentencia distinta si
la condición no se cumple. Esto es para lo que sirve else. else extiende una sentencia if para ejecutar
una sentencia en caso de que la expresión en la sentencia if se evalúe como FALSE. Por ejemplo, el
siguiente código mostraría a es mayor que b si $a fuera mayor que $b, y a NO es mayor que b
en cualquier otro caso:


<?php
if ($a > $b) {
echo "a es mayor que b";
} else {
echo "a NO es mayor que b";
}
?>

La sentencia else se ejecuta solamente si la expresión if se evalúa como FALSE, y si hubiera alguna
expresión elseif - sólo si se evaluaron también a FALSE (Ver elseif).

Sentencia elseif

elseif, como su nombre sugiere, es una combinación de if y else. Como else, extiende una
sentencia if para ejecutar una sentencia diferente en caso de que la expresión if original se evalúa como FALSE. No obstante, a diferencia de else, ejecutará esa expresión alternativa solamente si la expresión condicional elseif se evalúa como TRUE. Por ejemplo, el siguiente código mostraría a es mayor que b, a es igual a b o a es menor que b:


<?php
if ($a > $b) {
echo "a es mayor que b";
} elseif ($a == $b) {
echo "a es igual que b";
} else {
echo "a es mayor que b";
}
?>
Puede haber varios elseifs dentro de la misma sentencia if. La primera expresión elseif (si hay
alguna) que se evalúe como TRUE se ejecutaría. En PHP, también se puede escribir ’else if’ (con dos
palabras) y el comportamiento sería idéntico al de un ’elseif’ (una sola palabra). El significado sintáctico es ligeramente distinto (si estas familiarizado con C, es el mismo comportamiento) pero la línea básica es que ambos resultarían tener exactamente el mismo comportamiento.

La sentencia elseif se ejecuta sólo si la expresión if precedente y cualquier expresión elseif
precedente se evalúan como FALSE, y la expresión elseif actual se evalúa como TRUE.

Sentencia while

Los bucles while son los tipos de bucle más simples en PHP. Se comportan como su contrapartida en C.
La forma básica de una sentencia while es:

while (expr) sentencia

El significado de una sentencia while es simple. Le dice a PHP que ejecute la(s) sentencia(s) anidada(s) repetidamente, mientras la expresión while se evalúe como TRUE. El valor de la expresión es comprobado cada vez al principio del bucle, así que incluso si este valor cambia durante la ejecución de la(s) sentencia(s) anidada(s), la ejecución no parará hasta el fin de la iteración (cada vez que PHP ejecuta las sentencias en el bucle es una iteración). A veces, si la expresión while se evalúa como FALSE desde el principio de todo, la(s) sentencia(s) anidada(s) no se ejecutarán ni siquiera una vez.

Los siguientes ejemplos son idénticos, y ambos imprimen números del 1 al 10:


<?php
/* ejemplo 1 */
$i = 1;
while ($i <= 10) {
echo $i++; /* el valor impreso sería
$i antes del incremento
(post-incremento) */
}
/* ejemplo 2 */
$i = 1;
while ($i <= 10):
echo $i;
$i++;
?>

Sentencia do..while

Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se
comprueban al final de cada iteración en vez de al principio. La principal diferencia frente a los bucles regulares while es que se garantiza la ejecución de la primera iteración de un bucle do..while (la condición se comprueba sólo al final de la iteración), mientras que puede no ser necesariamente
ejecutada con un bucle while regular (la condición se comprueba al principio de cada iteración, si esta
se evalúa como FALSE desde el principio la ejecución del bucle finalizará inmediatamente).
Hay una sola sintaxis para los bucles do..while:


<?php
$i = 0;
do {
echo $i;
} while ($i>0);
?>

El bucle de arriba se ejecutaría exactamente una sola vez, después de la primera iteración, cuando la
condición se comprueba, se evalúa como FALSE ($i no es más grande que 0) y la ejecución del bucle
finaliza.

Los usuarios avanzados de C pueden estar familiarizados con un uso distinto del bucle do..while, para
permitir parar la ejecución en medio de los bloques de código, encapsulandolos con do..while(0), y
usando la sentencia break. El siguiente fragmento de código demuestra esto:


<?php
do {
if ($i < 5) {
echo "i no es lo suficientemente grande";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i es correcto";
} while(0);
?>

Sentencia for


Los bucles for son los bucles más complejos en PHP. Se comportan como su contrapartida en C. La
sintaxis de un bucle for es:

for (expr1; expr2; expr3) sentencia

La primera expresión (expr1) se evalúa (ejecuta) incondicionalmente una vez al principio del bucle.
Al comienzo de cada iteración, se evalúa expr2 . Si se evalúa como TRUE, el bucle continúa y las
sentencias anidadas se ejecutan. Si se evalúa como FALSE, la ejecución del bucle finaliza.
Al final de cada iteración, se evalúa (ejecuta) expr3.
Cada una de las expresiones puede estar vacía. Que expr2 esté vacía significa que el bucle debería
correr indefinidamente (PHP implicitamente lo considera como TRUE, al igual que C). Esto puede que no sea tan inútil como se podría pensar, puesto que a menudo se quiere salir de un bucle usando una sentencia break condicional en vez de usar la condición de for.
Considera los siguientes ejemplos. Todos ellos muestran números del 1 al 10:


<?php
/* Ejemplo 1 */
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
/* ejemplo 2 */
for ($i = 1;;$i++) {
if ($i > 10) {
break;
}
echo $i;
}
/* ejemplo 3 */
$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* ejemplo 4 */
for ($i = 1; $i <= 10; print $i, $i++) ;
?>

Break

break escapa de la estructuras de control iterante (bucle) actuales for, while, o switch.
break accepta un parámetro opcional, el cual determina cuantas estructuras de control hay que escapar.


<?php
// Ejemplo sin valor numérico
$array = array('uno', 'dos', 'parar', 'tres');
while(list(, $valor) = each($array)){
if($valor == 'parar'){
break;
}
echo "$valor</br>";
}
// Ejemplo con valor numérico
$i = 0;
while (++$i){
switch($i){
case 5:
echo "He llegado a 5 </br>";
break 1; // Aquí sólo saldría del switch
case 10:
echo "He llegado a 10 </br>";
break 2; // Sale del switch y del while
default:
break;
}
}
?>


Continue

Se utiliza dentro de las estructuras iterativas para saltar el resto de la iteración actual del loop y continuar a la siguiente iteraciónpara su ejecución


<?php
for ($i=0; $i < 10; $i++) {
if($i % 2 == 0)
continue;
print "$i ";
} // Devuelve 1 3 5 7 9
?>

Switch

switch es como una serie de sentencias if. Es útil para comparar una misma variable o expresión con valores direrentes y ejecutar un código diferente a otro dependiendo de esos valores.


<?php
switch ($i) {
case "perro":
echo "\$i es un perro";
break;
case "gato":
echo "\$i es un gato";
break;
case "avestruz":
echo "\$i es un avestruz";
break;
}
?>

Existen otras sentencia que veremos más adelante.

Puedes ejecutar códgio PHP en linea de forma fácil ingresado aquí: https://code.sololearn.com/#php


Comentarios

Entradas más populares de este blog

Calculando el factorial de un número (ejemplo de función recursiva).

Hola, mi nombre es Antonio Alfonso Martínez y en el presente artículo me dispongo a explicar un sencillo método para calcular el factorial de un número haciendo uso del concepto de recursividad. Para empezar, diremos que el factorial de un número natural "n" es el resultado del producto de todos los números desde 1 hasta dicho número "n". Así, para efectuar el calculo del factorial de un número, vamos a emplear una sencilla función a la que daremos el nombre de "factorial". De modo, que, partiendo del hecho de que el factorial de 1 y 0 es 1, construiremos nuestra función (a la que daremos el nombre de "factorial") para realizar el calculo del factorial de 5: Lo que hace esta función, es tomar como argumento un número "n". de modo que si este es 0 o 1 ("if n==0 or n==1:") la función devolverá directamente como resultado el número 1 ("resultado=1"). Sin embargo si dicho número "n" es mayor que...

Sistema Hexadecimal - Sistema de numeración posicional

Sistema Hexadecimal El sistema hexadecimal es un sistema numérico que tiene como base el numero 16, y es una variante de los numero binarios El sistema hexadecimal es utilizado por nuestros ordenadores con el fin de abreviar valores de datos e instrucciones de memoria. Esta es una imagen que muestra el contenido de un archivo con exención 'dll' en un editor de texto, como el editor de texto no reconoce este tipo de archivo, nos lo muestra de esta manera: Como se puede apreciar, en vez de ver una gran cantidad de 0 y 1, vemos que hay grupos de 4 dígitos, y si observamos, vemos que son grupos de dígitos hexadecimales. El archivo cuentan con más de 48 mil lineas, por ello no se me es posible mostrarlo todo. Este es uno de los usos del sistema hexadecimal para abreviar grandes cantidades de 0 y 1. Ustedes mismos pueden hacer la prueba con una imagen o con cualquier otro tipo de texto. El sistema hexadecima, esta conformado por solo 16 dígitos. A continuación te lo...

Ejercicios de Programación en Java: Condicionales, Bucles, Tablas y Funciones

PRÓLOGO El libro Ejercicios de Programación en Java: Condicionales, Bucles, Tablas y Funciones nace como fruto de años de docencia en materias relacionadas: Algorítmica, Programación, Lenguaje C y Java, entre otros.  Con el paso del tiempo he constatado que aprender un lenguaje de programación es relativamente sencillo y sobre este tema existen muchos y muy buenos textos. Pero aprender a programar es algo totalmente distinto, que necesita de un mayor esfuerzo y abordar el problema desde otra perspectiva. Siempre utilizo la metáfora del pianista para explicar el tándem programar/lenguaje de programación: saber tocar las notas de un piano es relativamente fácil, tan solo debemos anotar en cada una de las teclas a qué nota musical corresponde. Esto sería similar a conocer un lenguaje de programación. Es muy sencillo utilizar un if o entender la mecánica de un while .  Volviendo al piano: una vez que dominamos la relación tecla/nota, un pianista debe aprender muchas ot...