Justi 25 de febrero de 2008 a las 13.08
   Imprimir artículo
elWebmaster.com

Taller de PHP: Bucles (Parte II)


Bienvenidos a la sexta clase del Taller de PHP. Continuando con la clase de bucles, hoy vamos a ver los dos restantes: for y foreach. Estos son un poco más complejos, por lo que debemos prestar mucha atención para no cometer errores.

Vamos a ver que las expresiones tienen un encadenamiento determinado y deben cumplir con ciertos parámetros. Esto es fundamental para que todo funcione de manera correcta. Pero veamos esto en detalle, sin perder más tiempo.

for

El bucle for tiene la siguiente sintaxis:

<?
for( expresion 1; expresion 2; expresion 3 ) {
instrucciones
}
?>

La expresión 1 se ejecuta una vez al comienzo del bucle, la expresión 2 es la condición que se debe cumplir y la expresión 3 se ejecuta al final de ejecutar las instrucciones en cada iteración.

Siguiendo el mismo ejemplo de la clase anterior, en la que vimos el bucle while, ahora vamos a usar el mismo, mostrar la secuencia de números del 1 al 10 pero con un for.

<?
for ($c = 1; $c < 11; $c++) {
echo "$c <br />";
}
?>

Al igual que como hicimos en el ejemplo del while, aquí seteamos $c = 1 (expresión 1 que se ejecuta por única vez antes de comenzar el bucle), $c < 11 es la expresión 2, o sea la condición que queremos que se cumpla, y $c++ es la acción que se va a realizar al finalizar la iteración, igual que el while donde le poníamos el $c++ dentro de las instrucciones.

Para bucles for se puede utilizar también una sintaxis alternativa.

<?
for ( expresion 1; expresion 2; expresion 3 ):

instrucciones
endfor;
?>

foreach

Este bucle es una forma rápida y sencilla de recorrer un arreglo o una matriz. En la clase 2 vimos que una variable podía contener un arreglo (array). ¿Qué quiere decir esto? que a una variable se le puede asignar un conjunto de elementos, por ejemplo la variable $semana puede contener un arreglo con los días de la semana, para esto la definimos así:

<?
$semana = array( 'lunes','martes','miércoles',jueves','viernes','sábado','domingo' );
?>

La sintaxis del foreach que nos va a permitir recorrer los array es la siguiente:

<?
foreach ( expresion1 as expresion2 ) {
instruccion
}
?>

En expresion1 ponemos nuestro array y en expresion2 definimos cómo queremos que se llame el valor de cada elemento de nuestro array, en instrucciones lo que queremos hacer cada iteración.

Siguiendo nuestro ejemplo de la semana, el bucle va a recorrerse 7 veces, ya que tenemos 7 días, si lo que queremos es mostrar un listado de los días que tenemos en nuestro array debemos hacer lo siguiente:

<?
// definimos el arreglo con los días de la semana
$semana = array( 'lunes','martes','miércoles',jueves','viernes','sábado','domingo' );

// mostrarnos el mensaje inicial
echo "Los días de la semana son:<br />";

// comienza el bucle
foreach ( $semana as $dia ) {
echo "$dia <br />";
}
?>

De esta forma la variable $dia se va reemplazando con el siguiente valor que le corresponde en el array por cada iteración que realiza el foreach

Si todavía no se perdieron, vamos a ver la forma de utilizar el foreach para recorrer un arreglo que tiene definido índices, en el ejemplo anterior vimos un array el cual no tenía definido ningún índice, ahora vamos a ver un array un poco más complejo:

<?
$noticia = array(
'titulo' => 'Php Clase 5 - Bucles',
'cuerpo' => 'Acá va el contenido de la clase 5 de php, mucho texto, mucho mucho',
'autor' => 'Justi'
);
?>

Ahora que ya tenemos nuestro array más complejo, vamos a ver el foreach sin mostrar índices y mostrándolos

<?
foreach ( $noticia as $valor ) {
echo "$valor<br />";
}
?>

En este ejemplo vamos a imprimir en pantalla lo siguiente:

Php Clase 5 - Bucles
Acá va el contenido de la clase 5 de php, mucho texto, mucho mucho
Justi

Y usando la expresión más compleja:

<?
foreach ( $noticia as $indice => $valor ) {
echo "$indice: $valor<br />";
}
?>

obtenemos en pantalla

titulo: Php Clase 5 - Bucles
cuerpo: Acá va el contenido de la clase 5 de php, mucho texto, mucho mucho
autor: Justi

Tip

Lo bueno de usar esta última expresión es que se puede manipular que mostrar en pantalla dependiendo del índice, supongamos que queremos imprimir nuestra noticia pero queremos que los títulos tengan un <h1> el cuerpo aparezca en un <p> y el autor en un <span> usando los condicionales hacemos lo siguiente:

<?
foreach ( $noticia as $indice => $valor ) {
if ( $indice == 'titulo' ) { echo "<h1>$valor</h1>"; }
if ( $indice == 'cuerpo' ) {echo "<p>$valor</p>"; }
if ( $indice == 'autor' ) {echo "<span>$valor</span>"; }
}
?>

¿Y que tal? Ya va tomando un poco más de sentido todo lo que venimos leyendo, no?

Nos vemos la clase que viene.

<< CLASE ANTERIOR  

CLASE SIGUIENTE >>

 


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (11)

  1. César dice:

    Quisiera saber cuando van a estar disponibles las demas clases sobre PHP, xqm interesan mucho a partir de la nº 20

    GRACIAS! Muy bueno el Sitio!

  2. Juan Manuel dice:

    ¡Hola, César! Las clases de PHP se publican todos los lunes, de modo que sólo te queda esperar un poco, pero es bueno ir repasando conceptos de todas formas. ¡Saludos!

  3. César dice:

    buenisimo! y Gracias!! es muy interesante el Taller

    Adioss :)

  4. freeman dice:

    que tal!!!!

    Magnifico, aprendiendo las condiciones , asi podre estudiarlos con mas precision….

    para no equivocamr en el futuro…

    saludos a todos los alumonos e integrantes del webmaster…

    saluods desde oaxaca..!!!!

  5. Wagner dice:

    Hola me gusta mucho estas clases de php, para mi super bien explicadas.

    Me gustaria saber cuando estara disponible este curso completo en formato PDF, claro que despues de que termine todo el curso, para asi poder imprimirlo con mejor facilidad y poder leerlo tranquilamente a cualquier hora del dia.

    Gracias pro compartir sus conocimientos.

  6. jose dice:

    Interesante, muy interesante, agradesco mucho el que puedan compartir el conocimiento. Deseo mejorar mi web, y pues esta es una forma de hacerlo, aprender para aplicar, enseñar para crecer. Gracias y que Dios los Bendiga por su aporte desinteresado.

  7. David dice:

    Hola, estoy siguiendo este curso de PHP y la verdad es que para los que no tenemos mucha idea de php, esta de maravilla, muy bien explicado y con ejemplos, que es lo que falta muchas veces en otros sitios.
    bueno yo tenia una duda, yo estoy realizando el archivo php con Dreaweaver, pero las letras se me ven mal a verlo en el Explorardor, se ven con simbolos raros.
    Me puedes ayudar, de que es?

  8. Crissss dice:

    Que extraño donde explicas el primer FOR me dio error y lo corregí así:

    <?php
    for ($c = 1; $c < 11; $c++) {
    echo $c, “”;
    }
    ?>

    Como no vi ninguna ayuda o alguien que le aya pasado lo mismo que a mí pienso que a mí solo me paso¿¿??

    _Saludos

  9. Jonathan dice:

    Muy buenas las clases de PHP espero sigan suviendo más.
    En lo personal me gustaría a prender a mostrar resultados de una Base de datos SQL en 2 columnas.

  10. Israel dice:

    Excelente el bucle “foreach”
    Saludos.

  11. carluso dice:

    este tuto esta super desfasado pa lo lejos que va el php

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder