Les conditions (2e partie)
Article écrit par kazhar
Un des principaux avantages de l'informatique, en général, est de permettre d'automatiser des taches fastidieuses. Imaginons que nous voulions écrire tous les entiers inferieurs à 5.
Il serait dommage de devoir écrire:
Code :
<?php
echo "0";
echo "1<br />";
echo "2<br />";
echo "3<br />";
echo "4<br />";
echo "5<br />";
?>
L'informatique a créé, pour ce genre de besoin, la notion de boucle.
WHILE
while est une boucle qui permet d'écrire:
TANT QUE testest vrai FAIRE action
Code :
<?php
$i = 0;
while ($i <5)
{
echo "$i<br />":
$i++;
}
echo "<br />fin de boucle";
?>
affichera sur notre page :
0
1
2
3
4
fin de la boucle
Faites attention lorsque vous travaillez avec une boucle while à ne pas vous retrouver dans une boucle infinie. Cela aurait été le cas si nous avions oublié la ligne $i++. En effet, dans ce cas, la variable aurait gardé la valeur 0 et la boucle while aurait affiché "0" eternellement......
Comme pour les conditions, le test peut etre complexe:
Code :
<?php
$i = 1;
while (($n != 121) && ($i <100))
{
$n = $i * $i;
echo "i = $i, n= $n<br>";
$i++;
}
?>
afficherait sur notre page :
i = 1, n= 1
i = 2, n= 4
i = 3, n= 9
i = 4, n= 16
i = 5, n= 25
i = 6, n= 36
i = 7, n= 49
i = 8, n= 64
i = 9, n= 81
i = 10, n= 100
i = 11, n= 121
DO...WHILE
Une variante existe au while: le do...while. il ne sagit plus d'un tant que...faire mais d'un faire...tant que. Dans ce cas, le code de la boucle est donc au moins executé une fois:
Code :
<?php
$i = 6;
do
{
echo $i;
}
while ($i<5);
?>
Bien que $i contienne la valeur 6 et que le test soit $i<5, le code est bien executé une fois.
FOR
La syntaxe de la boucle for est la suivante:
for (expression1; expression2; expression3)
- expression 1 est l'instruction initiale avant la première itération;
- expression 2 est le test réalisé au début pour chaque itération;
- expression 3 est l'instruction éxécutée à la fin de chaque itération.
Ainsi, l'équivalent de cette boucle while est la boucle for suivante:
Code :
<?php
$i = 0;
while ($i <= 10)
{
echo "$i <br>";
$i++;
}
?>
<?php
for ($i = 0; $i<=10; $i++)
{
echo "$i<br>";
}
?>
La boucle for permet donc de condenser les principaux éléments d'une boucle au sein d'une meme ligne.
FOREACH
PHP propose une espece de for spécialement dédié aux tableaux: le foreach. Il pourrait etre traduit ainsi:
Pour chaque élément du tableau, faire
Code :
<?php
$tab = array ("a"; "b", "c", "d");
foreach ($tab as $val)
{
echo "$val ";
}
?>
s'il s'agit d'un tableau associatif, il faut alors écrire:
Code :
<?php
$tab = array("prenom" => "paul", "nom" => "dupont");
foreach ($tab as $indice => $valeur) { echo "$indice = $valeur";
} ?>
qui affichera sur notre page :
prenom = paul nom = dupont
Source : http://www.phportail.net