Los diferentes tipos de sentencias en PHP son: if, else, elseif, while, do...while,
for, foreach, break, continue, switch.
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.
La sintaxis de la estructura if en PHP es la siguiente:
if (expr)
sentencia
El código anterior mostraría por pantalla el mensaje 'a es mayor que b' en el caso
de que el valor de la variable $a fuera mayor que el valor de la variable $b y no
haría nada en otro caso.
Por ejemplo, este código mostraría 'a es mayor que b' si $a fuera mayor que $b, y
entonces asignaría el valor de $a a $b:
$b = $a;
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:
De la misma manera que hemos comentado para la claúsula if, también es posible
agrupar varias sentencias utilizando llaves {} tras la claúsula else. Veamos un
ejemplo:
Por ejemplo, el siguiente código mostraría 'a es mayor que b', 'a es igual a b' o 'a
es menor que b':
Nota 2: 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).
Sentencia while
Los bucles while son los tipos de bucle más simples en PHP.
La forma básica de una sentencia while es:
while (expr)
sentencia
El significado de una sentencia while es el siguiente:
El siguiente ejemplo muestra por pantalla los números naturales del 1 al 10:
do{
sentencia(s)
}while (expr)
Ejemplo:
El bucle del ejemplo se ejecutará una sola vez. Después de la primera iteración,
cuando la condición se comprueba, se evalúa como FALSE ($i no es mayor que 0)
y la ejecución del bucle finaliza.
Sentencia for
Los bucles for son los bucles más complejos en PHP.
sentencia(s)
}
El significado de una sentencia for es el siguiente:
Veamos un ejemplo:
En este caso, las expresiones expr1, expr2 y expr3 se podrían interpretar como
sigue: desde $i=1 (expr1) hasta $i=10 (expr2), escribir el valor de la variable $i
(sentencia) y posteriormente, al final de cada iteración, incrementar el valor de $i
(expr3).
Cada una de las expresiones expr1, expr2, y expr3 puede estar vacía. Que expr2
esté vacía significa que el bucle debería correr indefinidamente (PHP
implícitamente lo considera como TRUE, al igual que C). Puede que esto no
resulte tan inútil como se podría pensar, puesto que a menudo se quiere salir de
un bucle usando una sentencia break en vez de usar la condición de for.
Se consideran los siguientes ejemplos. Todos ellos muestran números del 1 al 10:
Ejemplo 1:
Ejemplo 2:
Ejemplo3:
Sentencia foreach
foreach(nombre_array as $valor){
sentencia(s)
}
ó
foreach(nombre_array as $clave => $valor){
sentencia(s)
}
La primera forma recorre el array dado por nombre_array. En cada
iteración, el valor del elemento actual se asigna a la variable $valor y el
puntero interno del array se avanza en una unidad (así en el siguiente paso,
se estará mirando el elemento siguiente).
La segunda manera hace lo mismo, salvo que, además, la clave del
elemento actual será asignada a la variable $clave en cada iteración.
Nota: Cuando foreach comienza su primera ejecución, el puntero interno del array
se reinicia automáticamente al primer elemento del array, por lo que no es
necesario llamar a reset() antes de un bucle foreach. Esto significa que
inicialmente el puntero interno está señalando al primer elemento del array sin
necesidad de forzar este comportamiento.
EJEMPLO 1:
EJEMPLO 2:
EJEMPLO 2:
Sentencia break
La sentencia break escapa de la estructuras de control iterantes (bucles) actuales
for, while, o switch.
La sentencia break acepta un parámetro opcional, el cual determina cuantas
estructuras de control hay que escapar.
EJEMPLO:
Sentencia continue
La sentencia continue se usa dentro de la estructura del bucle para saltar el resto
de la iteración actual del bucle y continuar la ejecución al comienzo de la siguiente
iteración.
Acepta un parámetro opcional, el cual determina cuantos niveles (bucles) hay que
saltar antes de continuar con la ejecución.
Sentencia switch
La sentencia switch es similar a una serie de sentencias IF en la misma
expresión.
En muchas ocasiones, se quiere comparar la misma variable (o expresión) con
muchos valores diferentes, y ejecutar una parte de código distinta dependiendo del
valor de dicha variable (o expresión). Para eso sirve la sentencia switch.
La sintaxis de la sentencia switch es la siguiente:
switch(expr){
case valor1:
sentencia(s)1;
break;
case valor2:
sentencia(s)2;
break;
.
.
.
default:
sentencia()s;
}
Veamos cómo se ejecuta la sentencia switch: cuando se encuentra una sentencia
case con un valor igual al valor de la expresión switch, PHP empieza a ejecutar las
sentencias correspondientes a dicho case y continúa ejecutando las sentencias
hasta el final del bloque switch (en el caso de que no haya ningún break) o hasta
la primera vez que encuentre una sentencia break.
Nota: Si no se escribe una sentencia break al final de una lista de sentencias case,
PHP seguirá ejecutando las sentencias del siguiente case.
EJEMPLO: