Les structures de contrôle sont caractérisées par des parenthèses parfois
accompagnées d’accolades. Elles évaluent la validité d’une expression et
décident de l’exécution ou non d’une partie du programme.
Les tests
Les tests sont déclenchés par l’expression if ou switch.
If
if est un aiguillage. Le moteur PHP, comme un train, suit la ligne du
programme jusqu’à l’aiguillage qui teste sa variable et en fonction de sa
réponse, le fait bifurquer dans telle ou telle direction.
Voici la forme commune d’un if :
If (expression vraie utilisant un opérateur logique) {
Exécution 1;
}
else {
Exécution 2 ;
}
else intervient dans tous les autres cas, c’est-à-dire quand l’expression est
fausse. Si l’expression est vraie, le code inclus dans le bloc else
matérialisé par les accolades n’est jamais exécuté. De la même façon, si
l’expression est fausse, le code inclus dans le bloc if n’est pas exécuté.
else n’est pas obligatoire. if, lorsqu’il est seul, se contente de conditionner
une exécution de code. Voici deux exemples :
Combien y-a-t-il de minutes dans une heure ? : heure.php
<?
$mn=5;
$mn*=13;
echo "1) nombre de minutes : $mn<br>";
if ($mn>60){
$h=$mn/60; // division par 60 pour avoir les heures
$mn%=60;// modulo par 60 pour avoir les minutes restantes
echo "cela fait ${h}h ${mn}mn";
echo " (<i>c’est brut!)</i><br>"; //petit commentaire perfide!!!
$h=round($h); //nous affinons l’affichage
echo ’<font color="#FF0000">$h=round($h);</font><br>’;
echo "cela fait ${h}h ${mn}mn";
echo " <i>(un peu de finesse dans un monde de brutes!)</i><br>";
//la maxime de Superprogrammeur !!!
}
///////////////fin du if minutes >60////////////////////
else {
echo "cela fait ${mn}mn<br>";
}
Ce premier exemple est un aiguillage avec deux blocs initialisés par if et
else. Il est uniquement destiné à votre apprentissage car un programmeur
utiliserait plutôt les fonctions d’heure. Remarquez les retraits qui permet-tent de mieux lire le code ainsi que les commentaires, car les accolades sont parfois éloignées et il est bon d’y ajouter un commentaire pour les
préciser.
Dans le deuxième exemple, nous allons améliorer un code précédent :
$annonce="Félicitations, vous y êtes arrivé";
if ($sexe==’f’){
$genre=’e’;
}
$fin_annonce=", vous gagnez une bouteille de Bourgueil";
echo $annonce$genre$fin_annonce;
Ici, nous n’avons pas besoin de else car si $sexe==’h’, la variable
$genre ne sera pas initialisée et le e n’apparaîtra pas. Si la variable
n’existe pas, PHP ne génère pas d’erreur, ce qui économise du code mais
peut faire perdre du temps en cas d’erreur.
elseif permet d’ajouter plusieurs possibilités d’aiguillage entre les blocs
if et else. else est le bloc par défaut, il n’est jamais obligatoire :
<?
If ($age<18){
Bloc d’instructions
}
elseif ($age>=18 && $age<35){
Bloc d’instructions
}
elseif ($age>=35 && $age<49){
Bloc d’instructions
}
else {
Bloc d’instructions
} ?>
Switch
Maintenant, vous pouvez utiliser switch qui correspond à un bloc if,
elseif mais avec des valeurs ponctuelles. Il ne s’applique pas à des
valeurs sur des intervalles. Ici les valeurs (1, 2…) sont des codes donnés
par convention, par exemple dans un menu déroulant à l’intérieur d’un
formulaire, comme nous le verrons dans le prochain chapitre.
switch ($age){
case 1:
$age="moins de 18 ans";
break;
case 2:
$age="entre 18 et 35 ans";
break;
case 3:
$age="entre 35 et 49 ans";
break;
default:
$age="plus de 49 ans";
}
Si $age est égal à 1, il prend la valeur de moins de 18 ans. Le
default est la valeur prise par $age s’il n’est égal à aucune des valeurs
proposées.
accompagnées d’accolades. Elles évaluent la validité d’une expression et
décident de l’exécution ou non d’une partie du programme.
Les tests
Les tests sont déclenchés par l’expression if ou switch.
If
if est un aiguillage. Le moteur PHP, comme un train, suit la ligne du
programme jusqu’à l’aiguillage qui teste sa variable et en fonction de sa
réponse, le fait bifurquer dans telle ou telle direction.
Voici la forme commune d’un if :
If (expression vraie utilisant un opérateur logique) {
Exécution 1;
}
else {
Exécution 2 ;
}
else intervient dans tous les autres cas, c’est-à-dire quand l’expression est
fausse. Si l’expression est vraie, le code inclus dans le bloc else
matérialisé par les accolades n’est jamais exécuté. De la même façon, si
l’expression est fausse, le code inclus dans le bloc if n’est pas exécuté.
else n’est pas obligatoire. if, lorsqu’il est seul, se contente de conditionner
une exécution de code. Voici deux exemples :
Combien y-a-t-il de minutes dans une heure ? : heure.php
<?
$mn=5;
$mn*=13;
echo "1) nombre de minutes : $mn<br>";
if ($mn>60){
$h=$mn/60; // division par 60 pour avoir les heures
$mn%=60;// modulo par 60 pour avoir les minutes restantes
echo "cela fait ${h}h ${mn}mn";
echo " (<i>c’est brut!)</i><br>"; //petit commentaire perfide!!!
$h=round($h); //nous affinons l’affichage
echo ’<font color="#FF0000">$h=round($h);</font><br>’;
echo "cela fait ${h}h ${mn}mn";
echo " <i>(un peu de finesse dans un monde de brutes!)</i><br>";
//la maxime de Superprogrammeur !!!
}
///////////////fin du if minutes >60////////////////////
else {
echo "cela fait ${mn}mn<br>";
}
Ce premier exemple est un aiguillage avec deux blocs initialisés par if et
else. Il est uniquement destiné à votre apprentissage car un programmeur
utiliserait plutôt les fonctions d’heure. Remarquez les retraits qui permet-tent de mieux lire le code ainsi que les commentaires, car les accolades sont parfois éloignées et il est bon d’y ajouter un commentaire pour les
préciser.
Dans le deuxième exemple, nous allons améliorer un code précédent :
$annonce="Félicitations, vous y êtes arrivé";
if ($sexe==’f’){
$genre=’e’;
}
$fin_annonce=", vous gagnez une bouteille de Bourgueil";
echo $annonce$genre$fin_annonce;
Ici, nous n’avons pas besoin de else car si $sexe==’h’, la variable
$genre ne sera pas initialisée et le e n’apparaîtra pas. Si la variable
n’existe pas, PHP ne génère pas d’erreur, ce qui économise du code mais
peut faire perdre du temps en cas d’erreur.
elseif permet d’ajouter plusieurs possibilités d’aiguillage entre les blocs
if et else. else est le bloc par défaut, il n’est jamais obligatoire :
<?
If ($age<18){
Bloc d’instructions
}
elseif ($age>=18 && $age<35){
Bloc d’instructions
}
elseif ($age>=35 && $age<49){
Bloc d’instructions
}
else {
Bloc d’instructions
} ?>
Switch
Maintenant, vous pouvez utiliser switch qui correspond à un bloc if,
elseif mais avec des valeurs ponctuelles. Il ne s’applique pas à des
valeurs sur des intervalles. Ici les valeurs (1, 2…) sont des codes donnés
par convention, par exemple dans un menu déroulant à l’intérieur d’un
formulaire, comme nous le verrons dans le prochain chapitre.
switch ($age){
case 1:
$age="moins de 18 ans";
break;
case 2:
$age="entre 18 et 35 ans";
break;
case 3:
$age="entre 35 et 49 ans";
break;
default:
$age="plus de 49 ans";
}
Si $age est égal à 1, il prend la valeur de moins de 18 ans. Le
default est la valeur prise par $age s’il n’est égal à aucune des valeurs
proposées.
Aucun commentaire:
Enregistrer un commentaire