Sondage du mois

Sondage du mois
 

  La connaissance ne vaut que si elle est partagée par tous




 
  Astuce Adobe Photoshop : Raccourci outil Recadrage : Touche C




Les tutoriaux: Index » Php » Methode » Cours 6 – Les structures de contrôles

Introduction

  • Tutoriel posté par Sky
  • 866 lectures
  • Mis en ligne le
  • Dernière mise à jour le 24-01-2011
  • Ce tutoriel a été estimé comme simple.


Automatic Translations:
Translate Into English Translate Into German Translate Into Italian Translate Into Spanish Translate Into Portuguese

Nous entrons dans un chapitre très important du PHP : les structures de contrôles.
Soyez attentif messieurs dames :)

Cours 1 - Les bases de PHP
Cours 2 - Les types
Cours 3 - Les variables
Cours 4 - Les opérateurs
Cours 5 - Les constantes
Cours 6 - Les structures de contrôle
Cours 7 - Les Tableaux

Méthodologie

Chapitre 6 : Les structures de contrôles


Nous entrons dans un chapitre très important du PHP : les structures de contrôles.
Vous les utiliserez dans normalement tous vos scripts.

Elles sont utilisées par tous les langages de programmation.
A partir de ce chapitre vous pourrez commencer à créer de petits scripts.

Tout d'abord, qu'est-ce qu'une structure de contrôles :

Tous les scripts PHP sont une suite d'instructions.
Un instruction, en général, se termine par un point-virgule ( ;), sauf les boucles qui sont des instructions spéciales mais très importantes.
Une instruction peut être une assignation, un appel de fonction, une instruction vide (qui ne fait rien) mais en général ce sont des instructions conditionnelles.

Un petit tableau regroupant les instructions les plus utilisées :

VALIDE EXPLICATION
if si
else Sinon
elseif Sinon si
switch Selon
while Tant que (boucle)
do ... while fait ceci ... tant que
for Pour (boucle)
foreach Pour chaque


Je vais vous expliquer à quoi elles servent et comment les utiliser.

L'instruction «  if  » :


L'instruction if est une des plus importantes instructions de tous les langages, PHP inclus.
Elle permet d'exécuter du code si une ou plusieurs conditions sont respectées.

Sa syntaxe est :

CODE PHP


if (expression) {
 commandes 
 }



L'expression entre parenthèse est évaluée : si l'expression est vraie (true), PHP exécutera les commandes en crochets.
Si elle fausse (false) l'instruction sera ignorée.

Voici un exemple :

CODE PHP


<?php 
$a = 3; 
$b = 1; 

if ($a > $b) { 
echo "$a est plus grand que $b"; 
} 
//Dans ce cas là, le code entre crochets sera executé car l'expression $a > $b est TRUE 
?>

CODE PHP


<?php 
$a = 5; 
$b = 9; 

if ($a > $b) { 
echo("$a est plus grand que $b"); 
} 
//Dans ce cas là, le code entre crochets sera ignoré car l'expression $a > $b est FALSE 
?>



L'instruction «  else  » :


Souvent, vous voulez aussi exécuter une instruction si la condition if est FALSE.
C'est ici qu'intervient else.

Sa syntaxe est :

CODE PHP


else {
 commandes 
 }



Inutile de préciser que else fonctionne forcément avec if.

CODE PHP


if (expression) {
 commandes 
 } else {
 commandes 
 }



Si l'expression du if est FALSE et si elle n'est pas suivi par l'expression elseif, alors les commandes du else sont exécutées.


Exemple :

CODE PHP


<?php
$a = 5; 
$b = 9; 

if ($a > $b) { 
echo "$a est plus grand que $b"; 
} else { 
echo "$b est plus grand que $a"; 
} 
/*Dans ce cas là, le code entre crochets du else sera executé car l'expression $a > $b est FALSE*/ 
?>



L'instruction «  elseif  » :


elseif est une combinaison de if et else.
Comme else , il permet d'exécuter une instruction après un if dont l'expression a été évaluée comme FALSE.
Mais cette instruction n'est exécutée que si l'expression entre parenthèse est TRUE. C'est la différence de else.

Sa syntaxe est :

CODE PHP


elseif (expression) { commande }



Voici un exemple

CODE PHP


<?php
$fruit = "pomme"; 
if ($fruit == "poire") { 
echo "Le fruit est une poire"; 
} elseif ($fruit == "pomme") { 
echo "Le fruit est une pomme"; 
} else { 
echo "C'est un fruit mais pas une pomme ni une poire"; 
} 
/*Le fruit est une pomme sera affiché à l'écran car l'expression de elseif est TRUE et celle de if est FALSE.*/ 
?>




L'instruction « switch » :

L'instruction switch est une série d'instructions if.
Souvent vous aurez besoin de faire de nombreuses comparaisons de valeurs pour une même variable, c'est à sa que sert l'instruction switch .
Car au lieu d'utiliser d'innombrables if , on utilisera un switch avec plusieurs case .

Sa syntaxe est :

CODE PHP


  <?php
  switch (variable) { 
  case valeur : 
  commandes 
  break;
  } 
  ?>
  



Exemple en utilisant if :

CODE PHP


  <?php
  $nb = 3; 
  if($nb == 0) { 
  echo "nb est égal à 0"; 
  } 
  if($nb == 1) { 
  echo "nb est égal à 1"; 
  } 
  if($nb == 2) { 
  echo("nb est égal à 2"); 
  } 
  if($nb == 3) { 
  echo("nb est égal à 3"); 
  } 
  if($nb == 4) { 
  echo("nb est égal à 4"); 
  } 
  if($nb == 5) { 
  echo("nb est égal à 5"); 
  } 
  ?> 
  



Vous comprenez qu'il devient dur d'utiliser des if pour tester de nombreuses valeurs.

Exemple en utilisant switch :

CODE PHP


  <?php
  $nb = 3; 
  swith($nb) { 
  case 0: 
  echo "nb est égal à 0"; 
  break; 
  
  case 1: 
  echo "nb est égal à 1"; 
  break; 
  
  case 2: 
  echo "nb est égal à 2"; 
  break; 
  
  case 3: 
  echo "nb est égal à 3"; 
  break; 
  
  case 4: 
  echo "nb est égal à 4"; 
  break; 
  
  case 5: 
  echo "nb est égal à 5"; 
  break; 
  } 
  ?> 
  



Il est beaucoup plus facile dans ce cas là d'utiliser switch .
N'oubliez pas break; sinon PHP continuera a exécuter tout le bloc de switch . Par exemple PHP exécutera la case 4 et 5 même si $nb est égal à 3.
break est aussi une instruction de contrôle (un instruction de controle d'arrêt)

L'exemple ci-dessus nous explique l'utilisation de switch, cependant nous l'utilisont avec de simple chiffre, en terme de lignes de code ce n'est pas si différent que if et elseif et else.
Cependant imaginons que nous utilisions switch avec des fonctions plutot. imaginez avoir 100 fonctions à rédiger les unes derrière les autres à la "volée", l'appel / l'affichage de la fonction désirée se fera simplement avec switch. On gagne en lisibilité du code plutot que d'inombrable if et elseif et else imbriqués.

CODE PHP


  <?php
// $var peux être défini par $_GET[] ou par $_POST[] par exemple 
  swith($var) { 
  case fonction1: 
  fonction1(); 
  break; 
  
  case fonction2: 
  fonction2(); 
  break; 
  
  case fonction3: 
  fonction3(); 
  break; 
  ?> 



Dans le cadre d'un switch il peut être intéressant de definir un élement par defaut si aucune des condition (case) n'est vraie
Dans ce cas nous ajoutons default définit comme ceci.

CODE PHP


 
default:
echo "Ceci est un élement par défaut d'un switch";
break;	



Les boucles :


Une boucle, comme son nom l'indique, permet d'exécuter du code en boucle tant qu'une est expression est TRUE.

L'instruction « while » :


Sa syntaxe est :

CODE PHP


while (expression) { 
commandes } 



Les commandes seront exécutées tant que l'expression sera évaluée TRUE.

Un petit exemple :

CODE PHP


<?php
$i = 0; 
// Tant que $i est inférieur ou égale à 5
while ($i <= 5){ //le code ci-dessous sera executé tant que $i est inférieur ou égal à 5 
echo "$i"; 
$i++; // On incrémente $i de 1 sinon on ne sortira jamais de la boucle
// Affiche $i puis l'incrémente de 1 (cf. cours sur les opérateurs) 
// Affiche donc à l'écran 012345
} 
?> 



L'instruction « for » :


En vulgarisant les boucles for on pourrais dire que ce sont des espèces de condensé de while en une seule ligne.
Dans la plupart des langages de programmation for() est utilisé pour parcourir un tableau, PHP lui utilise foreach pour effectuer cela (foreach plus bas)
Sa syntaxe est :

CODE PHP


   for (expression1 ; expression2 ; expression3) { 
   commandes 
   } 
   



L'expression1 est évaluée quoi qu'il arrive au début de la boucle. c'est la déclaration d'une variable qui nous servira pour la boucle ($i = 0)
L'expression2 est évaluée. Si elle vaut TRUE, la boucle continue et l'instruction est exécutée. Si elle vaut FALSE, la boucle s'arrête.
A la fin de chaque itération(chaque fois que PHP exécute l'instruction on appelle ça une itération) l'expression3 est évaluée.


Voici un exemple

CODE PHP


   for ($i = 0 ; $i <= 5 ; $i++) // Instruction 1, Instruction 2, Instruction 3
   { 
   echo "$i"; 
   } 
 
 // La même chose avec while 

 	$i = 0 // Instruction 1
 	while ($i <= 5)  // Instruction 2
   { 
   echo "$i"; 
   $i++; // Instruction 3
   } 
 ?>  



L'instruction « foreach » :


foreach est une structure de controle servant à parcourir un tableau array() (Voir cours sur les tableaux en PHP)
foreach est une boucle qui avance son pointeur à chaque itération.

Elle a pour syntaxe (2 méthodes selon le tableau parcouru)

CODE PHP


<?php
foreach($leTableau as $valeur)
{
echo "$valeur <br/>";
}
// Affichage des couples clé / valeur
foreach($leTableau as $cle => $valeur)
{
echo "$cle a pour valeur $valeur <br/>";
}
?>



Pour comprendre cette boucle définissons deux tableaux PHP (un tableau numérique et un tableau associatif)

CODE PHP


<?php
// Tableau numérique
$fruit = array('pomme','poire','kiwi','orange','banane');
// Tableau associatif
$couleur = array('rouge'=>'#ff0000','vert'=>'#00ff00','bleu'=>'#0000ff');

// Affichage des fruits 
foreach($fruit as $aliment) // $fruit est le tableau, $aliment est chaque valeur de $fruit 
{
echo "$aliment <br/>";
}

/* Affichage des couleurs 
$couleur est le tableau, $nom chaque entrée de $couleur et $code_hexa la valeur associée à $nom */
foreach($couleur as $nom => $code_hexa) 
{
echo "$nom à comme code hexadécimal $code_hexa <br/>";
}
?>



L'instruction « break » :


L'instruction break permet de sortir d'une structure for, foreach, while, do-while ou switch. break accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées doivent être interrompues.

CODE PHP


<?php
/* Exemple repris de la doc PHP officielle */

$arr = array('un', 'deux', 'trois', 'quatre', 'stop', 'cinq');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* Vous pourriez aussi utiliser 'break 1;' ici. */
    }
    echo "$val
n"; } /* Utilisation de l'argument optionnel. */ $i = 0; while (++$i) { switch ($i) { case 5: echo "At 5
n"; break 1; /* Termine uniquement le switch. */ case 10: echo "At 10; quitting
n"; break 2; /* Termine le switch et la boucle while. */ default: break; } } ?>



L'instruction « continue » :


L'instruction continue est utilisée dans une boucle afin d'éluder les instructions de l'itération courante et de continuer l'exécution à la condition de l'évaluation et donc, de commencer la prochaine itération.

CODE PHP


<?php
for ($i = 0; $i < 5; ++$i) {
    if ($i == 2)
        continue;
    echo "$i ";
}
// Affichera à l'écran -> 0134
/* Comme expliqué plus haut si $i est égal à 2 il passe l'instruction 
de l'itération courante et passe à la suivante */
?>



L'opérateur ternaire


Il permet d'assigner une valeur par défaut.
L'expression (expr1) ? (expr2) : (expr3) est évaluée à expr2 si expr1 est évalué à TRUE , et expr3 si expr1 est évalué à FALSE.

CODE PHP


<?php
// Exemple d'utilisation
$action = (empty($_POST['action'])) ? 'défaut' : $_POST['action'];

// La ligne ci-dessus est identique à la condition suivante :
if (empty($_POST['action'])) {
$action = 'défaut';
} else {
$action = $_POST['action'];
}
?>



L'opérateur « goto » :


L'opérateur goto peut être utilisé pour continuer l'exécution du script à un autre point du programme. La cible est spécifiée par un label, suivi de deux-point, et l'instruction goto est ensuite suivi de ce label. goto n'est pas totalement sans limitations. L'étiquette cible doit être dans le même contexte et fichier, ce qui signifie qu'il n'est pas possible de changer de méthode ou de fonction, ni de se rendre dans une autre fonction. Vous pouvez sortir d'une fonction, et l'utilisation courante est alors de se servir de goto comme un break.

CODE PHP


<?php

// Affiche à l'écran -> Bar
goto a;
echo 'Foo'; // Sera ignoré car avant nous avons un goto a;
 
a:
echo 'Bar';
?>

CODE PHP


<?php
// Affiche à l'écran uniquement -> J vaut 60
for($i=0,$j=50; $i<100; $i++) {
while($j++) {
if($j==60) goto end; 
}  
}
echo "i = $i"; // sera ignoré car la sortie de boucle se fait à cause de goto end;

end:
echo 'J vaut 60';
?>



Syntaxe alternative


PHP propose une autre manière de rassembler des instructions à l'intérieur d'un bloc, pour les fonctions de contrôle if, while, for, foreach et switch. Dans chaque cas, le principe est de remplacer l'accolade d'ouverture par deux points (:) et l'accolade de fermeture par respectivement: endif;, endwhile;, endfor;, endforeach;, ou endswitch;.

CODE PHP


<?php
if ($a == 5):
echo "a égal 5";
echo "...";
elseif ($a == 6):
echo "a égal 6";
echo "!!!";
else:
echo "a ne vaut ni 5 ni 6";
endif;
?>

Notes

  Evaluez le tutorial (7 Votes)

3
2
2

Pour les questions ou d'éventuelles remarques, dirigez vous vers le forum.

Réagir sur ce tutoriel - [Php] Cours 6 – Les structures de contrôles

DERNIÈRES PUBLICATIONS DE OPEN-MOUTHED

En direct de open-mouthed.com