
Compatibilidad PHP 4, PHP 5, PHP 7, PHP 8 +.
Los bucles for son el tipo más complejo de bucles en PHP, son similares a su contraparte C y tienen la siguiente forma:
for (exp1; exp2; exp3) statement
La expresión se ejecuta exp1
una vez incondicionalmente al comienzo del ciclo, y la expresión se ejecuta exp2
al comienzo de cada ciclo. Si el resultado es el mismo, el True
ciclo continúa su trabajo y ejecuta las declaraciones incluidas en él. Si el resultado es el mismo, el False
bucle deja de funcionar y la expresión se exp3
ejecuta al final de cada ciclo. Cualquiera de las tres expresiones se puede dejar en blanco, y se pueden usar varias expresiones separadas por comas.
Todas las expresiones contenidas en la expresión se ejecutan exp2
pero el resultado se toma solo de la última instrucción. Dejar la expresión en exp2
blanco hace que el ciclo se ejecute solo en infinito (PHP considera implícitamente que el valor es True
, como en C). Esto puede no ser tan inútil como cree, ya que a veces es posible que desee detener el ciclo con una interrupción condicional en lugar de utilizar la validación del ciclo. Tenga en cuenta los siguientes ejemplos, que muestran los 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, $j = 0; $i <= 10; $j += $i, print $i, $i++); ?>
Seguro que el primer ejemplo es el mejor (o quizás el cuarto), pero a menudo encontrará que dejar expresiones vacías en un bucle for no deja de ser beneficioso. PHP también admite la sintaxis alternativa para bucles for
:
for (exp1; exp2; exp3): statement ... endfor;
Es muy común usar bucles for para pasar a través de los elementos de una matriz, como muestra el siguiente ejemplo:
<? php / * * Esta matriz incluye algunos de los datos que queremos modificar * al pasar por el ciclo iterativo. * / $people = array( array('name' => 'Ana', 'salt' => 856412), array('name' => 'Bell', 'salt' => 215863) ); for($i = 0; $i < count($people); ++$i) { $people[$i]['salt'] = mt_rand(000000, 999999); } ?>
El código anterior puede ser lento porque cuenta el número de elementos de la matriz en cada ciclo, y dado que el número de elementos es una constante, el ciclo iterativo se puede mejorar utilizando una variable intermedia en la que almacenamos el número de elementos al llamar a la función ()count
en cada ciclo:
<?php $people = array( array('name' => 'Ana', 'salt' => 856412), array('name' => 'Bell', 'salt' => 215863) ); for($i = 0, $size = count($people); $i < $size; ++$i) { $people[$i]['salt'] = mt_rand(000000, 999999); } ?>
- Función echo PHP Características
- Función chr() en PHP Características
- Función convert_uuencode() PHP Características
- Función addslashes() PHP Características
- Función chunk_split() PHP Características
- Addcslashes() en PHP Características
- Tipos de Funciones String en PHP
- Arrays php Características
- Declare php Características
- Características de continue en PHP
- Características del switch php
- Características del break en PHP
- Características del foreach en PHP
- Características del for en PHP
- Características del do-while en PHP
- Características del while en PHP
- Características del elseif en PHP
- Características de else en PHP
- Características del if en PHP
- Estructuras de Control en PHP
- Expresiones en PHP
- Operadores en PHP
- Constantes en PHP
- Las Variables en PHP
- Tipos de Datos que encontramos en PHP
- Sintaxis del Lenguaje PHP
- Ajustes y Configuraciones del Lenguaje PHP