for loops are the most complex loops in PHP. They behave like their C counterparts. The syntax of a for loop is:

for (expr1; expr2; expr3)
    statement

The first expression (expr1) is evaluated (executed) once unconditionally at the beginning of the loop.

In the beginning of each iteration, expr2 is evaluated. If it evaluates to TRUE, the loop continues and the nested statement(s) are executed. If it evaluates to FALSE, the execution of the loop ends.

At the end of each iteration, expr3 is evaluated (executed).

Each of the expressions can be empty or contain multiple expressions separated by commas. In expr2, all expressions separated by a comma are evaluated but the result is taken from the last part. expr2 being empty means the loop should be run indefinitely (PHP implicitly considers it as TRUE, like C). This may not be as useless as you might think, since often you’d want to end the loop using a conditional break statement instead of using the for truth expression.

Consider the following examples. All of them display the numbers 1 through 10:

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
echo $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}

/* example 3 */

$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}

/* example 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

Of course, the first example appears to be the nicest one (or perhaps the fourth), but you may find that being able to use empty expressions in for loops comes in handy in many occasions.

PHP also supports the alternate “colon syntax” for for loops.

for (expr1; expr2; expr3):
    statement
    ...
endfor;

Its a common thing to many users to iterate though arrays like in the example below.

<?php
/*
* This is an array with some data we want to modify
* when running through the for loop.
*/
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0; $i < sizeof($people); ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>

The problem lies in the second for expression. This code can be slow because it has to calculate the size of the array on each iteration. Since the size never change, it can be optimized easily using an intermediate variable to store the size and use in the loop instead of sizeof. The example below illustrates this:

<?php
$people = Array(
Array('name' => 'Kalle', 'salt' => 856412),
Array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0, $size = sizeof($people); $i < $size; ++$i)
{
$people[$i]['salt'] = rand(000000, 999999);
}
?>

Estudio indica que Android es la plataforma móvil más insegura y Windows Phone la más segura En Microsoft pueden sonreír satisfechos: puede que Windows Phone todavía esté lejos de arrancar del todo, pero ahora tiene un nuevo dato que lanzar a ...
Listo el Kernel Linux 3.0 Una vez superado algunos problemas de última hora y coincidiendo con el 20 aniversario del nacimiento del núcleo, Linus Torvalds acaba de dar a conoce...
What is a Weblet A weblet is similar to, but different in several ways from a minisite or microsite. Although a weblet is similar in that it is a type of Internet web ...
Firefox 5 versión candidata Como parte del nuevo ciclo de actualizaciones del navegador de la Fundación Mozilla, el canal beta acaba de lanzar Firefox 5 Release Candidate. Ent...
WhatsApp tiene muchas más funciones de las que creías, mira esta lista WhatsApp tiene muchas más funciones de las que creías, mira esta lista. Whatsapp es el servicio de mensajería líder en el mundo. Cerca de mil millones...
Web Hosting Glossary,Terms Letter: U Terms Letter: U Unicode A 16-bit character set defined by ISO 10646. It maps digits to characters in languages around the world. Because 16 ...
Blogger sufre una avería y suspende el servicio durante 2 días Los blogueros de Blogger habrán estado mano sobre mano durante estos dos días. Y es que el servicio de alojamiento de blogs de Google acaba de sufrir ...
Libro Gratis Sobre HTML5 Ante la llegada definitiva de HTML5 desde DesarrolloWeb.com tratamos de ofrecerte aquellos contenidos con los que sacar provecho de tu tiempo de estud...
Xiaomi incluirá Windows 10 en su Mi 4 La compañía china y Microsoft anuncian un programa de prueba de Windows 10 entre un pequeño número de usuarios del Xiaomi Mi 4. Microsoft y Xiaomi ...
Domain Name System o DNS, que es el sistema de nombres de dominio Domain Name System o DNS (en español: sistema de nombres de dominio) es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier...
for loops on PHP
Tagged on: