Le site de référence en environnement
et sciences de la Terre depuis 2001

english deutsch
Envoyer cette page
Cours PHP  rss  Plan du site

connexion Se connecter

Login (email)  
Mot de passe mémoriser
 
Devenir membreRetrouver vos identifiants

Plus que 18 jours pour gagner 5 jeux !

Marre de la pub ? Devenez membre premium !

actu21 décembre 2012 : la fin du monde ?
actu"Il est déjà trop tard" : l'espèce humaine devrait s'éteindre ce siècle
actuDémographie : la vraie vérité qui dérange
actuLes abeilles, témoins du bon état de notre environnement, disparaissent massivement
actuUn nouveau "continent" de déchets a été découvert dans l'océan Atlantique Nord !
actuManger autant de viande est une aberration pour l'environnement et la santé
actuLe pic pétrolier mondial : on doit s'y préparer dès maintenant !
actuLimiter l'augmentation de la température planétaire à 2 ºC n'est plus réalisable
actuLe déclin de l'industrie nucléaire
actu7 milliards d'habitants sur Terre
actuPollution de l'air : plus de 2 millions de morts par an

Marre de la pub ? Devenez membre premium !

Sondage Février 2012

Découvrez l'agenda du mois
> > Février 2012 < <

Marre de la pub ? Devenez membre premium !

www.notre-planete.info : environnement, développement durable et sciences de la Terre

Les boucles

Les boucles sont des structures qui permettent d'exécuter plusieurs fois une ou plusieurs instructions en fonction d'une ou plusieurs conditions.
Les boucles se retrouvent dans un grand nombre de scripts PHP, notamment parce qu'elles permettent de lire les enregistrements successifs des tables de bases de données.
Nous n'évoquerons ici que les boucles les plus communes.

La boucle while

Cette boucle appelée en algorithmique « tant que » permet d'effectuer les mêmes opérations (bloc d'instructions) tant que la valeur de l'expression est vraie.

Bien sûr, il faut s'assurer qu'une instruction de la boucle rende le test faux, sinon la boucle s'éxécutera à l'infini... Ce qui n'est pas sans poser de problèmes tout en étant une arme redoutable pour faire tourner en bourrique votre serveur.

while (expression à valider) {
  instructions à exécuter;
}

Exemple

<?php
$table 
5;
$res 'table de multiplication de '.$table.'<br />';
$i 0;

while (
$i 11) {
    
$res .= $i.' * '.$table.' = '.$i*$table.'<br />';
    
$i++;
}
echo 
$res;
?>

Cet exemple permet d'afficher simplement la table de multiplication de 5 comme ci-dessous :

table de multiplication de 5
0 * 5 = 0
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20
5 * 5 = 25
6 * 5 = 30
7 * 5 = 35
8 * 5 = 40
9 * 5 = 45
10 * 5 = 50

Do ... while

Cette boucle appelée "jusqu'à" fonctionne comme la boucle while sauf que le bloc d'instruction est au moins exécuté une fois puisque le test se fait à la fin de la structure.

do {
  instructions à exécuter;
}
while(expresion à valider);

<?php
$table 
5;
$res 'table de multiplication de '.$table.'<br />';
$i 0;

do {
    
$res .= $i.' * '.$table.' = '.$i*$table.'<br />';
    
$i++;
}
while (
$i 11);

echo 
$res;
?>

Le résultat est le même :

table de multiplication de 5
0 * 5 = 0
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20
5 * 5 = 25
6 * 5 = 30
7 * 5 = 35
8 * 5 = 40
9 * 5 = 45
10 * 5 = 50

Notons que l'utilisation de cette boucle est nécessaire lorsque l'on souhaite que les instructions soient au moins effectuées une fois, puisque le test est effectué à la fin.

For

Cette boucle très utilisée permet d'exécuter une ou plusieurs instructions un certain nombre de fois.
On l'utilise couramment avec un compteur qui détermine le nombre de passage dans la boucle. Ainsi, un compteur est incrémenté (augmenté de 1) à chaque itération (passage dans la boucle). La valeur du compteur est également comparée à la valeur maximale qu'il peut prendre. Une fois cette limite atteinte, la boucle se termine.
Il est possible de sortir prématurément de la boucle grâce à l'instruction break comme dans le cas du switch.

for (initialisation; valeur maximale; incrément du compteur) {
  instructions;
}

  • initialisation du compteur est la première valeur que prend votre compteur, exemple : nombre d'arbres = 0
  • valeur maximale est la dernière valeur que prend le compteur (valeur d'arrêt), exemple : 10 000 000 arbres
  • incrément du compteur est la valeur ajoutée au compteur à chaque passage, exemple : 100 arbres

Exemple 1

Cet exemple permet d'afficher une note à des sites Internet d'un annuaire. Chaque site se voit attribuer de 1 à 3 coeurs en fonction de leur qualité.
Le nombre de coeurs d'un site est connu, cette valeur a été récupérée dans la base de données (nous verrons comment extraire des données d'une base de données par la suite).

<?php
$c 
2//nombre de coeurs à afficher pour le site        
for ($j $j $c $j++) {
    
$coeurs .= '<img src="http://www.notre-planete.info/PHP/medias/coeur.gif"
    width="10" height="10" hspace="0" align="middle">'
;
    }
echo 
$coeurs;
?>

Le résultat sera :

Exemple 2

Pour afficher le troisème samedi du mois de l'année en cours.

<?php
for ($i 1$i <= 12$i++) {
   echo 
date("Y-m-d"strtotime("2010-$i third saturday")).'<br />';
}
?>

Le résultat sera :

2010-01-16
2010-02-20
2010-03-20
2010-04-17
2010-05-22
2010-06-19
2010-07-17
2010-08-21
2010-09-18
2010-10-16
2010-11-20
2010-12-18

La boucle for est très souvent employée tant qu'on connaît la valeur maximale. Sinon, on préférera les boucles while ou foreach décrites ci-dessous.

Foreach

Cette boucle empruntée au Perl permet de parcourir tous les éléments d'un tableau. A chaque itération (passage dans la boucle), l'élément suivant est exploité avec sa clé (ou indice) et sa valeur, sans qu'il faille l'indiquer. La boucle cessera dès qu'il n'y aura plus d'éléments à parcourir dans le tableau.
La syntaxe est la suivante :

foreach ($tableau as $valeur) {
  instructions à exécuter;
}

ou

foreach ($tableau as $cle => $valeur) {
  instructions à exécuter;
}

Notons que cette boucle travaille sur une copie du tableau parcouru et non sur le tableau lui-même. Ainsi, les éventuelles modifications faites à l'intérieur de la boucle foreach sur le tableau ne seront pas prises en compte.

Déclarons un tableau associatif (dont les indices sont des chaînes de caractères) qui reprend le dernier sujet de discussion des forums notre-planete.info

Exemple

<?php
$tableau 
= array (
"forum" => "géographie",
"titre" => "TPE sur les tsunamis",
"date" => "27/12/2004"
);

// affichage des valeurs du tableau
foreach ($tableau as $valeur) {
    echo 
$valeur.'<br />';
}

// affichage des clés et valeurs du tableau<br />
foreach ($tableau as $cle => $valeur) {
    echo 
'Clé '.$cle.' et sa valeur : '.$valeur.'<br />';

?>

Le résultat sera le suivant :

géographie
TPE sur les tsunamis
27/12/2004
Clé forum et sa valeur : géographie
Clé titre et sa valeur : TPE sur les tsunamis
Clé date et sa valeur : 27/12/2004


Haut de page ^ Offres d'emploi et CV     Livres et DVD     Associations     Communiqués     Agenda     rss Flux RSS     Partenaires

Page mise à jour le 01/12/2011  21 connectés© 2001-2012 notre-planete.info® v. 5.69 - tous droits réservés
notre-planete.info est un site indépendant qui informe et sensibilise objectivement sur l'environnement, l'écologie, les sciences de la Terre et le développement durable
Mentions légales  |   Presse  |   Publicité  |   Contact  |   Liens et logos  |   Soutenez notre-planete.info !