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"; | |
} | |
?> |
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
Publicar un comentario