| Formulario de acceso |
|---|
| Anuncios |
|---|
|
|
| Manual PHP+MySQL (IV - Sentencias de control) |
|
|
| martes, 31 de enero de 2006 | ||
|
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. En este capítulo se describen los diferentes tipos de sentencias que harán que ciertos bloques de código se ejecuten o no dependiendo del contenido y el valor devuelto por la misma. 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: if (expr) 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á. Como en muchos otros lenguajes, PHP toma el valor 0 como FALSE y cualquier otro valor como TRUE. Comprobemos en el siguiente ejemplo cómo se mostraría a es mayor que b si $a fuera mayor que $b: if ($a > $b) Dentro de un mismo bloque de control se pueden insertar tantas lineas de código (sentencias) como queramos, no teniendo que utilizar un if por cada una de ellas. De la misma forma, 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 un programa.
else Invariablemente ligada a la sentencia if, else ejecutará una sentencia distinta de la comparación principal si esta no se establece a TRUE. 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: if ($a > $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 se ejecutará si esta se evalúa también a FALSE.
elseif Mediante elseif ejecutaremos en cascada tantas condiciones como queramos, sin limitación de ningún tipo. 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: if ($a > $b) { Puede haber varios elseif 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.
while La sentencia while ejecutará un determinado bloque de código siempre que la evaluación de la expresión se establezca a TRUE. La forma básica de una sentencia while es la siguiente: while (expr) sentencia 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 sentencia, 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 sentencia no se ejecutarán ni siquiera una vez. while (expr): sentencia ... endwhile; Veamos los siguientes ejemplos. Ambos imprimirán números del 1 al 10:
/* ejemplo 1 */
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 y si esta se evalúa como FALSE desde el principio, la ejecución del bucle finalizará inmediatamente). $i = 0; Veamos un ejemplo de uso combinando do..while con la instrucción break, que veremos más adelante: $num = 1;
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. /* ejemplo 1 */ Aunque la sentencia for es prescindible (cada sentencia for puede ser reemplazada por una while) es obvio que la complejidad de la misma se hace necesaria por ejemplo, en momentos en que necesitamos ejecutar código a condición de que una variable se encuentre entre dos valores.
foreach A partir de PHP4 se incluye la construcción foreach, a semejanza de perl y algunos otros lenguajes. foreach nos ofrece un modo sencillo de iterar sobre arrays. Hay dos sintaxis; la segunda es una extensión menor, pero igual de útil que la primera: foreach(expresion_array as $value) sentencia La primera forma recorre el array dado por expresion_array. En cada iteración, el valor del elemento actual se asigna a $value y el puntero interno del array se avanza en una unidad (así en el siguiente paso, se estará mirando el elemento siguiente). Ejemplo de foreach: $a = array(1, 2, 3, 17);
break break finaliza una estructura de control iterante (bucle) for, while, o switch. Acepta un parámetro opcional, el cual determina cuantas estructuras de control hay que escapar. $i = 0;
continue 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 (bluces) hay que saltar antes de continuar con la ejecución. while (list($key,$value) = each($arr)) {
switch..case..default La sentencia switch es similar a un conjunto de sentencias if en la misma expresión. Esto es, switch compara distintos valores concretos de una variable o una expresión y ejecuta un fragmento de código si una de esas comparaciones se establece a TRUE o ejecuta la sentencia default para todo aquello que no se compara. switch ejecuta sentencia a sentencia hasta llegar al final del bloque o hasta llegar a un break. Cada una de las sentencias va precedida de la sentencia case. Observemos un ejemplo sencillo que nos hará entender mejor esta sentencia: switch ($i) {
Sólo los usuarios registrados pueden escribir comentarios. Powered by AkoComment 2.0! |
||
| < Anterior | Siguiente > |
|---|







