Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Lecciones de PHP - Lección 12 - Bucles while, foreach, for

10/05/2025, by Ivan

Bastante a menudo en programación, y también en la vida diaria, tenemos que realizar acciones repetitivas hasta obtener el resultado deseado. En la vida diaria lo llamamos tortura, en programación lo llamamos bucles (loops). Los bucles son muy comunes en PHP porque son una forma práctica de recorrer arrays, calcular funciones, y muchas otras cosas. Comencemos con el más simple y popular: while.

Bucles while en PHP

while es muy simple: entre paréntesis escribimos la condición, y entre llaves lo que debe ejecutarse mientras esa condición sea verdadera. La condición es una expresión lógica que puede ser TRUE o FALSE. Si quieres repasar las expresiones lógicas, consulta la lección sobre el operador if. Veamos un ejemplo con while:

<?php
$counter = 5;
$newArray = array();
while($counter > 2){
  $newArray[]= $counter;
  $counter--;
}
print_r($newArray);
?>

El resultado será un array con los elementos 5, 4, 3. Veamos cómo ocurre esto paso a paso:

Paso 1. $counter = 5 (5 > 2)

Paso 2. $counter = 4 (4 > 2)

Paso 3. $counter = 3 (3 > 2)

Paso 4. $counter = 2 (2 = 2, la condición ya no se cumple, por eso no se ejecuta la acción y no aparece el 2 en el array)

Ahora otro ejemplo: tabulación de la función y(x) = 2x - 1:

<?php
// función y(x) = 2x -1;
$x = -10;
while($x <= 10){
  $y = 2*$x-1;
  print 'y(' . $x . ')=' . $y . '<br />';
  $x++;
}
?>

Como resultado, se mostrarán en columna los valores de la función para x en el intervalo [-10, 10].

For PHP

Este es el diagrama de flujo de un bucle while. Es el esquema general de cómo funciona este bucle. Tenemos una condición y el cuerpo del bucle; mientras la condición se cumpla, el cuerpo se ejecuta. Cuando deja de cumplirse, PHP continúa con el siguiente código.

Un punto MUY IMPORTANTE: si eliminas la línea $x++, el contador no cambiará y la condición se seguirá cumpliendo para siempre.

<?php
// función y(x) = 2x -1;
$x = -10;
while($x <= 10){
  $y = 2*$x-1;
  print 'y(' . $x . ')=' . $y . '<br />';
  // $x++;
}
?>

Entonces pasará algo muy, muy malo. Ocurrirá un error crítico: el cuerpo del bucle se ejecutará infinitamente. Esta situación se llama bucle infinito o loop infinito. ¡Evita este tipo de errores, pueden hacer que tu sitio web deje de funcionar!

Bucles foreach en PHP

Otro bucle muy útil, especialmente cuando necesitas recorrer un array. Por recorrer me refiero a tomar un elemento, hacer algo con él, luego el siguiente, hacer lo mismo, y así hasta el final.

Veamos un ejemplo. Supongamos que tenemos diez elementos: "rojo" y "azul". Contemos cuántos elementos "rojo" hay:

<?php
$counter = 0;
$newArray =array(
  1=>'rojo',
  2=>'azul',
  3=>'azul',
  4=>'rojo',
  5=>'rojo',
  6=>'azul',
  7=>'rojo',
  8=>'azul',
  9=>'rojo',
  10=>'azul',
);
foreach($newArray as $key){
  if($key == 'rojo'){
    $counter++;
  }
}
print 'Tenemos ' . $counter . ' elementos rojos';
?>

Creo que este ejemplo es claro. El operador as se usa para recorrer los elementos uno por uno. Cuando se terminan, foreach finaliza.

Pero no todos los arrays son simples; a veces contienen arrays anidados. Y cada subarray también puede recorrerse:

<?php
$counter = 0;
$newArray = array(
  1=>array(
    1 => 'rojo',
    2 => 'azul',
    3 => 'azul',
  ),
  2=>array(
    1 => 'rojo',
    2 => 'rojo',
    3 => 'azul',
  ) 
);
foreach($newArray as $key){
  foreach($key as $element){
    if($element == 'rojo'){
      $counter++;
    }
  }
}
print 'Tenemos ' . $counter . ' elementos rojos';
?>

Creo que por ahora foreach está más o menos claro. Lo volverás a ver en otros ejemplos más adelante.

Bucle FOR

El bucle for se parece al while. For se usa comúnmente cuando se conoce de antemano cuántas repeticiones se necesitan, por ejemplo 10 o 100 repeticiones:

for($i=0;$i<10;$i++){
  //diez repeticiones
}

Ahora expliquemos la estructura del bucle for:

for(){

}

Como en los otros bucles, todos los parámetros se escriben entre paréntesis. Generalmente se usan tres parámetros:

1. $i=0 – inicialización del contador, la variable que guarda el número de iteración actual.

2. $i<10 – condición que debe cumplirse para que el bucle continúe.

3. $i++ – incremento del contador, que nos lleva a la siguiente repetición.