Créée le, 19/06/2015

 Mise à jour le, 12/05/2019

Visiteurs N°  




Accueil
Nouveau Blog Nouveautés Moteur de Recherche Votre Caddie Pour Vos Achats Votre Espace Membre Vos Signets et Vos Jeux Préférés Page de Bienvenue Statique Site en Français Site en Anglais
Sommaires
Électronique Fondamentale Technologie Fondamentale Testez vos Connaissances Électronique Théorique Digitale Électronique Pratique Digitale Lexique Électronique Numérique Data book TTL Data book CMOS Dépannage TVC Mathématique
Micro-ordinateurs
Théorique des Micro-ordinateurs Testez vos Connaissances Pratique des Micro-ordinateurs Glossaires sur les Ordinateurs
Physique
La lumière Champ d'action Rayonnement Électromagnétique
Technologies
Classification des Résistances Identification des Résistances Classification des Condensateurs Identification des Condensateurs
Formulaires Mathématiques
Géométrie Physique 1. - Électronique 1. 2. - Électronique 1. 3. - Électrotechnique 1. 4. - Électromagnétisme
Accès à tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages N. B. M. - Tome I - 201 Pages E. T. M. - Tome I - 554 Pages Business à Domicile Ouvrages 34 pages gratuits Nos E-books Logiciel Géométrie Logiciel Composants Électroniques
Aperçu de tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages E. T. M. - Tome I - 554 Pages Logiciel Géométrie Logiciel Composants Électroniques
Nos Leçons aux Formats PDF
Électronique Fondamentale Technologie Fondamentale Électronique Théorique Digitale Électronique Pratique Digitale Théorique des Micro-ordinateurs Mathématiques
Informatique
Dépannage Win98 et WinXP et autres Dépannage PC Glossaire HTML et Programmes PHP et Programmes JavaScript (en cours de travaux) Création de plusieurs Sites
Forums
Forum Électronique et Infos Forum Électronique et Poésie
Divers et autres
Formulaire des pages perso News XML Statistiques CountUs Éditeur JavaScript Nos Partenaires et nos Liens Utiles Gestionnaire de Partenariat Nos Partenaires MyCircle Sondages 1er Livre d'Or 2ème livre d'Or

Signets :
  Leçons suivantes        Leçons précédentes     Bas de page
  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet


Tests de l'État des variables, Structures Conditionnelles, Blocs de Code, Instructions else, elseif, switch et Boucles while, for, etc. (5ème partie) :



Test et ajustement des types de variables :

La plupart des fonctions de variables s'utilisent pour tester le type des variables.

Les deux fonctions de variables les plus générales sont gettype() et settype(). les prototypes de ces fonctions (c'est-à-dire les arguments attendus et les valeurs renvoyées) sont les suivantes :

string gettype(var) ;

int settype(chaîne var, chaîne type) ;

gettype() s'emploie en lui passant une variable. La fonction détermine alors le type de la variable, et renvoie une chaîne contenant le nom du type (c'est-à-dire integer, double, string, array, ou object), ou bien unknown type s'il ne s'agit pas d'un des types PHP standard.

Pour utiliser settype(), il faut passer à la fonction la variable dont le type doit être modifié, ainsi qu'une chaîne contenant le nom du nouveau type à appliquer à la variable. Voici des instructions illustrant l'usage de ces deux fonctions de variables :

$a = 77 ;

echo gettype($a), "<br>" ;

settype($a, "double") ;

echo gettype($a) . "<br>" ;

Lors du premier appel de la fonction gettype(), la variable $a renvoie le type "integer". Après l'appel de settype(), la variable $a renvoie le type "double".

PHP fournit également des fonctions spécifiques d'un certain type de variable, et de test de type. Chacune de ces fonctions prend une variable comme argument, et renvoie soit true, soit false. Ces fonctions sont les suivantes :

is_array()

is_double(), is_float(), is_real() (la même fonction)

is_long(), is_int(), is_integer() (la même fonction)

is_string()

is_object()

Test de l'état d'une variable :

PHP offre plusieurs fonctions pour le test de l'état d'une variable.

La première de ces fonctions est isset(), dont le prototype est le suivant :

int isset(var) ;

Cette fonction prend un nom de variable comme argument, et renvoie true si la variable existe, et false dans le cas contraire.

Vous pouvez supprimer une variable au moyen de la fonction unset(). La fonction unset() a le prototype suivant :

int unset(var) ;

La fonction unset() supprime la variable qui est passée comme argument et renvoie true.

La dernière de ce jeu de fonctions spéciales est la fonction empty(), qui détermine si une variable existe et contient une valeur non vide et non nulle. La fonction empty() renvoie true ou false selon le résultat obtenu. Son prototype est le suivant :

int empty(var) ;

Examinons un exemple utilisant ces trois fonctions dans notre formulaire de commande de chez Jean-Pierre. Insérez les lignes suivantes à la fin de votre script du formulaire en question :

echo isset($ResisQty) ;

echo isset($Jean_Pierre) ;

echo empty($ResisQty) ;

echo empty($Jean_Pierre) ;

Pour visualiser l'aperçu, en cliquant ici. [Exemple 6].

La fonction isset() appliquée à la variable $ResisQty devrait renvoyer la valeur true, quelle que soit la valeur saisie dans le champ de formulaire associé à cette variable. Le résultat renvoyé par la fonction empty() appliquée à cette variable dépend par contre de la valeur saisie (ou non saisie) dans le champ de formulaire.

La variable $Jean_Pierre n'existe pas. Par conséquent, la fonction isset() appliquée à ce nom de variable renvoie la valeur false, tandis que la fonction empty() renvoie la valeur true.

Ces fonctions se révèlent très pratiques pour déterminer si l'utilisateur du formulaire a ou non rempli les champs qui lui sont proposés.

Instructions if :

Nous pouvons implémenter une structure if pour prendre une décision. Pour cela, nous devons spécifier une condition. Si la condition se révèle vraie, le bloc de code qui la suit est exécuté. Dans les instructions if, les conditions doivent être spécifiées entre parenthèses ().

Par exemple, si le formulaire de commande en ligne de chez Jean-Pierre est renvoyé par un client sans aucun article commandé, c'est sans doute que le client a actionné par inadvertance le bouton Submit. Plutôt que le message "Commande traitée", le navigateur pourrait lui renvoyer un message plus approprié, tel que : "Votre commande ne contient aucun article !". L'affichage d'un tel avertissement s'implémente très facilement au moyen d'une instruction if :

if ($TotalQty == 0)

echo "<center> <font face = Arial size = 4 color = #FF0000> <b> Votre commande ne contient aucun article ! </b> </font> </center> <BR/>" ;

Pour visualiser l'aperçu, en cliquant ici. [Exemple 7].

La condition utilisée ici est $TotalQty == 0. Rappelez-vous que l'opérateur d'égalité (==) est différent de l'opérateur d'affectation (=).

La condition $TotalQty == 0 est vraie si la variable $TotalQty est égale à zéro. Si $TotalQty est différente de zéro, la condition est fausse. Lorsque la condition est évaluée comme vraie (true), l'instruction echo est exécutée.

Blocs de code :

Dans les structures conditionnelles telles qu'une structure if, il est souvent nécessaire d'exécuter plusieurs instructions. Dans ce cas, vous n'avez pas besoin de placer une nouvelle instruction if avant chaque instruction à exécuter : il suffit de regrouper les instructions en un bloc. Pour déclarer un bloc, encadrez-le par des accolades, comme le montre l'exemple suivant :

if ($TotalQty == 0)

{

echo "<font face = Arial size = 4 color = red> <center>" ;

echo "<b> Votre commande ne contient aucun article ! Veuillez recommencer, en vous remerciant de votre visite ! </b> <BR/>" ;

echo "</center> </font>" ;

}

Pour visualiser l'aperçu, en cliquant ici. [Exemple 8].

Les trois lignes de code placées ici entre les accolades forment un bloc de code. Lorsque la condition est évaluée comme vraie, tout le bloc (c'est-à-dire, les trois lignes qui le constituent) est exécuté. Lorsque la condition se révèle fausse, le bloc est intégralement ignoré par l'interpréteur PHP.

Remarque : Mise en retrait de lignes de code

Comme nous l'avons déjà mentionné, l'interpréteur PHP ignore la mise en forme du code. Il est par conséquent fortement recommandé de mettre en forme le code par des mises en retrait, pour améliorer la lisibilité des programmes. Des mises en retrait judicieuses permettent de discerner d'un seul coup d'oeil les lignes des structures conditionnelles qui sont exécutées lorsque les conditions sont satisfaites, les instructions qui sont regroupées en bloc, et les instructions qui font partie de boucles ou de fonctions. Dans les exemples précédents, l'instruction qui dépend de l'instruction if, et les instructions qui constituent le bloc sont ainsi indentées.

Instructions else :

Souvent, il n'est pas suffisant de décider qu'une action doit être accomplie : il faut aussi choisir celle qui, dans un ensemble d'actions, doit être exécutée.

Une instruction else permet de spécifier une action alternative à accomplir lorsque la condition spécifiée dans une instruction if se révèle fausse. Dans l'exemple concernant le formulaire de commande de chez Jean-Pierre de son entreprise considéré ici, il est nécessaire d'alerter les clients de chez Jean-Pierre s'ils transmettent une commande vide. Par ailleurs, s'ils soumettent une commande valide, il faut leur renvoyer un récapitulatif de leur commande, et non pas un message d'avertissement.

Pour présenter aux clients, soit une alerte, soit un récapitulatif, nous pouvons introduire une instruction else dans notre code, comme suit :

Il suffit de remplacer le code précédent dans l'exemple 8 par celui-ci :

if ($TotalQty == 0)

{

    echo "<font face = Arial size = 4 color = red> <center>" ;

    echo "<b> Vous n'avez pas command&eacute; aucun article sur la page pr&eacute;c&egrave;dente ! Veuillez recommencer, en vous remerciant de votre visite ! </b> <BR/>" ;

    echo "</center> </font>" ;

}

else

{

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #0000FF> <b><u>R&eacute;capitulatif de votre commande</u> : </b> </font> <BR/> <BR/>" ;

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $ResisQty . "</font>" ;

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $CondosQty . "</font>" ;

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $TransisQty . "</font>" ;

}

Pour visualiser l'aperçu, en cliquant ici. [Exemple 9].

Nous vous rappelons que ce symbole &nbsp; permet de créer un espacement entre les mots ou caractères.

Vous pouvez ainsi implémenter des processus logiques complexes, en imbriquant des instructions if les unes dans les autres. Dans le code qui suit, au lieu de présenter d'emblée un récapitulatif au client lorsque la condition $TotalQty == 0 est évaluée comme vraie, chaque ligne du récapitulatif n'est affichée que si sa propre condition est vraie.

Vous pouvez également remplacer le code précédent dans l'exemple 9 par celui-ci :

if ($TotalQty == 0)

{

    echo "<font face = Arial size = 4 color = red> <center>" ;

    echo "<b> Vous n'avez pas command&eacute; aucun article sur la page pr&eacute;c&egrave;dente ! Veuillez recommencer, en vous remerciant de votre visite ! </b> <BR/>" ;

    echo "</center> </font>" ;

}

else

{

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #0000FF> <b><u>R&eacute;capitulatif de votre commande</u> : </b> </font> <BR/> <BR/>" ;

if ($ResisQty >0)

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $ResisQty . "</font>" ;

if ($CondosQty >0)

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $CondosQty . "</font>" ;

if ($TransisQty >0)

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $TransisQty . "</font>" ;

}

Pour visualiser l'aperçu, en cliquant ici. [Exemple 10].

Instructions elseif :

Dans bon nombre de situations de prise de décision, plusieurs options doivent être prises en compte. L'instruction elseif permet alors de créer une séquence de plusieurs options. L'instruction elseif est une combinaison d'une instruction else et d'une instruction if. Lorsqu'une séquence de conditions est implémentée, le programme peut tester chaque condition, jusqu'à trouver une condition qui soit vraie.

Par exemple, pour les grosses commandes des transistors, le site de chez Jean-Pierre accorde des remises à ses clients. Le principe de ces remises est le suivant :

Moins de 10 transistors achetés : aucune remise ;

11 à 40 transistors achetés : 5% de remise ;

41 à 70 transistors achetés : 10% de remise ;

71 à 99 transistors achetés : 15% de remise.

Nous pouvons créer du code pour calculer la remise accordée, en utilisant des conditions et des instructions if et elseif, ainsi que l'opérateur AND (&&) pour combiner deux conditions :

     if ($TransisQty >=0 && $TransisQty <= 10)

          $Remise = 0 ;

     elseif ($TransisQty >= 11 && $TransisQty <= 40)

          $Remise = 5 ;

     elseif ($TransisQty >= 41 && $TransisQty <= 70)

          $Remise = 10 ;

     elseif ($TransisQty >= 71 && $TransisQty <= 99)

          $Remise = 15 ;

echo "<BR/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 3> Remise &agrave; &nbsp;" . $Remise . "% sur les transistors </font>" ;

Pour visualiser l'aperçu, en cliquant ici. [Exemple 11].

Notez que vous pouvez indifféremment écrire elseif ou else if, (avec ou sans espace) mais préférable d'insérer comme suit : elseif et ceci pour éviter de vous induire en erreur sur les totaux.

Dans une telle cascade d'instructions elseif, seule une instruction (ou un bloc d'instructions) sera exécutée. Ce point n'a pas d'importance dans ce cas précis, parce que les différentes conditions spécifiées s'excluent mutuellement les unes des autres, (une seule est vraie à un moment donné). Par contre, lorsque dans un ensemble de conditions plusieurs conditions peuvent être vraies simultanément, seule est exécutée l'instruction, ou le bloc d'instructions, qui succède à la première condition évaluée comme vraie.

Instructions switch :

Une instruction switch est comparable à une instruction if, si ce n'est qu'elle permet d'implémenter une condition susceptible de prendre deux valeurs différentes. Dans une instruction if, la condition peut être évaluée soit comme vraie, soit comme fausse. Dans une instruction switch, la condition peut prendre différentes valeurs, à condition que toutes ces valeurs soient du même type (integer, string ou double). Une instruction case doit alors être implémentée pour gérer chaque valeur possible de la condition, et optionnellement, une instruction case par défaut, pour gérer tous les cas pour lesquels une instruction case spécifique n'a pas été prévue.

Par exemple, le site de chez Jean-Pierre aimerait connaître la forme de publicité qui se révèle le plus profitable à son entreprise. Dans cet objectif, il souhaite inclure une question de sondage dans son formulaire de commande.

Insérez dans la partie HEAD, le code de la feuille de style du formulaire de bon de commande pour le menu déroulant (pop-liste) comme suit :

     <STYLE TYPE="text/css">

     Select#Couleur

     {

     width : 200px; height: 22px; font-weight: bold;

     background: #000000;

     color: #FFFFFF;

     }

     </STYLE>

Insérez les codes HTML à la suite de la balise de fin </tr> dans votre formulaire de commande, et vous devriez obtenir le résultat à la figure 11 :

     <tr>

     <td valign="middle"> <BR><BR><font face="Arial" size="3" color="#000000">Comment avez-vous trouv&eacute; Jean-Pierre ? &nbsp;&nbsp;</font></td>

     <td valign = "bottom"> <select id="Couleur" name="Trouver">

     <option value = "a">Par un client r&eacute;gulier</option>

     <option value = "b">Par la publicit&eacute; t&eacute;l&eacute;vis&eacute;e</option>

     <option value = "c">Par annuaire t&eacute;l&eacute;phonique</option>

     <option value = "d">Par bouche &agrave; oreille</option>

     </select>

     </td>

     </tr>

     </TABLE>

     </FORM>

  </BODY>

</HTML>

Formulaire_de_Commande_Finit_Suite.png

Ce code HTML ajoute une nouvelle variable au formulaire de commande, qui peut prendre les valeurs "a", "b", "c", "d". Le traitement PHP de cette variable pourrait s'effectuer au moyen d'une série d'instructions if et elseif, comme suit :

     if ($Trouver = "a")

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client r&eacute;gulier. (Fonction if) </font>" ;

     elseif ($Trouver = "b")

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client vis&eacute; par la t&eacute;l&eacute;vision suite d'une annonce. </font>" ;

     elseif ($Trouver = "c")

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client vis&eacute; par le r&eacute;pertoire t&eacute;l&eacute;phonique. </font>" ;

     elseif ($Trouver = "d")

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client vis&eacute; par la bouche &agrave; oreille. </font>" ;

Pour visualiser l'aperçu, en cliquant ici. [Exemple 12].

Nous pourrions également parvenir au même résultat en implémentant une instruction switch :

     switch($Trouver)

     {

     case "a" :

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client r&eacute;gulier. (Fonction if) </font>" ;

     break ;

     case "b" :

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client vis&eacute; par la t&eacute;l&eacute;vision suite d'une annonce. </font>" ;

     break ;

     case "c" :

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client vis&eacute; par le r&eacute;pertoire t&eacute;l&eacute;phonique. </font>" ;

     break ;

     case "d" :

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Client vis&eacute; par la bouche &agrave; oreille. </font>" ;

     break ;

     default :

     echo "<font face = Arial size = 3 color = #000000><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nous ne savons pas comment ce client nous a trouv&eacute;. </font>" ;

     break ;

     }

Pour visualiser l'aperçu, en cliquant ici. [Exemple 13].

Il est important de comprendre que l'instruction switch exécute chacune des clauses dans l'ordre. L'instructions witch est exécutée ligne par ligne. Au début, aucun code n'est exécuté. Seulement lorsqu'un case est vérifié, PHP exécute alors les instructions correspondantes. PHP continue d'exécuter les instructions jusqu'à la fin du bloc d'instructions du switch, ou bien dès qu'il trouve l'instruction break. Si vous ne pouvez pas utiliser l'instruction break à la fin de l'instruction case, PHP continuera à exécuter toutes les instructions qui suivent.

Une instruction switch se comporte un peu différemment d'une instruction if ou d'une instruction elseif. Une instruction if n'affecte qu'une seule instruction, à moins qu'un bloc de code n'ait été délibérément créé en utilisant une paire d'accolades. Une instruction switch a le comportement inverse : lorsqu'une instruction case d'une structure switch est activée, l'interpréteur PHP exécute les instructions qui suivent jusqu'à rencontrer une instruction break. En l'absence d'instructions break, une structure switch conduit à l'exécution de tout le code succédant à l'instruction case évaluée comme vraie. Lorsque l'interpréteur PHP atteint une instruction break, il exécute la ligne de code qui suit la structure switch.

Comparaison des différentes structures conditionnelles :

Pour le débutant, le choix entre les différentes structures conditionnelles disponibles peut se révéler ardu.

Le choix de l'une ou l'autre structure conditionnelle est en effet assez délicat, puisque tout processus qui peut être implémenté au moyen d'instructions else, elseif, ou switch peut également l'être au moyen d'une série d'instructions if. Essayez d'adopter la structure conditionnelle qui soit la plus lisible dans le contexte du problème traité. C'est ensuite l'expérience qui vous permettra de trouver les réponses les plus appropriées.

Structures de répétition ou itérations :

Les ordinateurs sont toujours précieux lorsqu'il s'agit d'accomplir des tâches répétitives. Lorsqu'une action doit être entreprise de la même manière plusieurs fois de suite, vous pouvez implémenter une boucle pour répéter l'exécution d'un même fragment de code au sein d'un programme (ou de vos programmes).

Le site de chez Jean-Pierre veut afficher dans chaque commande de ses clients un tableau donnant le coût d'expédition de la commande. Avec la logistique d'expédition adoptée par l'entreprise de Jean-Pierre, le coût d'expédition dépend de la distance parcourue par la commande entre l'entrepôt et le client. Ce coût peut être calculé par une simple formule. Le résultat recherché est montré à la figure 12.

Structures_de_Repetition_de_Distance.png

Nous ne mettons pas le listing complet dans cette leçon, puisque le code HTML et répétitif. Pour visualiser le code et faire copier-coller, il suffit d'ouvrir son fichier source à l'aide du bouton droit de la souris.

Pour visualiser l'aperçu, en cliquant ici. [Exemple 14].

Vous pouvez observer que ce code est long est répétitif.

Les structures de répétition permettent d'exécuter une instruction ou un bloc de code de manière répétitive.

Boucles while :

La boucle while est la structure de répétition la plus simple du langage PHP. Tout comme une structure if, elle repose sur le test d'une condition. Une boucle while diffère toutefois d'une instruction if par le fait qu'elle exécute le bloc de code qui la suit tant que la condition reste vraie. Une structure if exécute une fois seulement le bloc de code qui suit lorsque la condition est vraie.

Une boucle while s'utilise, en général lorsque le nombre de répétitions à effectuer n'est pas connu à l'avance. Lorsque le nombre de répétitions est fixe, mieux vaut employer une boucle for.

La structure d'une boucle while est la suivante :

     while (condition) expression ;

La boucle while qui suit produit l'affichage des nombres compris entre 1 et 10 :

     <?php

     $numerique = 1 ;

     while($numerique <= 10)

     {

     echo "<b> <BR> <font face=arial size=3 color=#0000FF>" . $numerique . "<BR>" ;

     $numerique++ ;

     }

     ?>

Pour visualiser l'aperçu, en cliquant ici. [Exemple 15].

Au début de chaque répétition, la condition est testée. Si la condition se révèle fausse, le bloc n'est pas exécuté et l'exécution de la boucle prend fin. L'interpréteur PHP passe alors à l'instruction qui suit la boucle while.

Nous pouvons implémenter une boucle while pour accomplir une tâche un peu plus utile, comme l'affichage du tableau des coûts d'expédition montré à la figure 12.

Le code donné dans le listing ci-dessous utilise une boucle while pour générer le tableau des coûts d'expédition.

<HTML>

     <HEAD>

                    <TITLE> Structures d'it&eacute;rations </TITLE>

     </HEAD>

          <BODY>

                <CENTER> <BR> <BR> <BR>

                        <table border = 0 cellpadding = 3>

                        <tr bgcolor="#cccccc">

                        <td width = "170" align = "center"> <font face = "Arial" size = "3" color = "#000000"> <b>Distance</b> </font> </td>

                        <td width = "150" align = "center"> <font face = "Arial" size = "3" color = "#000000"> <b>Coût</b> </font> </td>

                        </tr>

                        <?php

                        $Distance = 50 ;

                        while($Distance <= 250)

                        {

                        echo "<tr>\n <td align = center> <font face=Arial size=3 color=#005500> <b>$Distance km</b> </font> </td>\n" ;

                        echo "<td align = center> <font face=Arial size=3 color=#005500> <b>" . $Distance / 10 . "&nbsp;euros</b> </font> </td>\n </tr>\n" ;

                        $Distance += 50 ;

                        }

                        ?>

                        </table>

                </CENTER>

          </BODY>

</HTML>

Pour visualiser l'aperçu, en cliquant ici. [Exemple 16].

Boucles for :

L'emploi que nous avons fait de la boucle while dans l'exemple précédent est très classique. Nous avons défini un compteur au début de la boucle. Avant chaque itération, le compteur est testé par une condition. A la fin de chaque itération, le compteur est modifié.

Ce style de boucle peut être implémenté de manière plus compacte, en utilisant une boucle for.

La structure d'une boucle for est la suivante :

    for(expression_1 ; condition ; expression_2) expression_3 ;

  expression_1 est exécutée une fois au début de la boucle, et contient normalement la valeur initiale d'un compteur.

  L'expression condition est testée avant chaque itération. Si la condition se révèle fausse, l'exécution de la boucle s'interrompt. Cette expression est généralement utilisée pour tester si le compteur a atteint une certaine limite.

  expression_2 est exécutée à la fin de chaque itération, et s'emploie généralement pour ajuster la valeur du compteur.

  expression_3 est exécutée une fois par itération. Cette expression est généralement un bloc de code, et constitue le corps de la boucle.

  L'exemple donné dans l'exemple 16, et qui illustre l'usage d'une boucle while, peut être réécrit avec une boucle for. Le code PHP devient alors :

      <?php

      <for($Distance = 50; $Distance <= 250; $Distance += 50)

   {

      echo "<tr>\n <td align=right> <font face=Arial size=3 color=#005500> <b>$Distance km |</b> </font> </td>\n" ;

      echo "<td align=right> <font face=Arial size=3 color=#005500> <b> " . $Distance / 10 . " euros |</b> </font> </td>\n </tr>\n" ;

   }

      ?>

Pour visualiser l'aperçu, en cliquant ici. [Exemple 17].

Les deux versions proposées ici, avec une boucle while et avec une boucle for, sont identiques d'un point de vue fonctionnel. La boucle for apparaît légèrement plus compacte (elle contient deux lignes de moins que par rapport à la boucle while).

Ces deux types de boucle sont équivalents : aucun n'est réellement meilleur que l'autre. Dans chaque situation, il vous appartient de choisir celui qui vous semble le plus intuitif.

Notez qu'il est possible de combiner des variables dynamiques avec une boucle for pour traiter automatiquement une série de champs de formulaire répétitifs. Par exemple, dans le cas d'un formulaire contenant des champs dénommés name_1, name_2, name_3, et ainsi de suite. Vous pouvez implémenter leur traitement de la manière suivante :

      for ($i=1; $i <= $numnames; $i++)

      {

      $$temp="name$i" ;

      echo $$temp . "<br>" ; // Ou tout autre traitement nécessaire

      }

Pour visualiser l'aperçu, en cliquant ici. [Exemple 18].

En créant dynamiquement les noms des variables ($$temp), nous pouvons accéder successivement aux différents champs du formulaire.

Boucles do ... while :

Le dernier type de boucle qu'il nous reste à étudier a un comportement légèrement différent. La structure d'une boucle do...while est la suivante :

      do

      expression ;

      while(condition) ;

Une boucle do...while diffère d'une boucle while lorsque sa condition est testée à la fin de chaque itération. Il s'ensuit que dans une boucle do...while, l'instruction ou le bloc formant le corps de la boucle est systématiquement exécuté une fois au moins.

Même dans l'exemple qui suit, où la condition se révèle fausse d'emblée et ne peut jamais être vraie, la boucle est exécutée une fois avant que la condition soit évaluée et que l'exécution de la boucle prenne fin :

      <?php

      $ValeurNumerique = 1000 ;

      do

      {

      echo "<font face=Arial size=5 color=#0000FF>" . $ValeurNumerique . "</font> <BR/>" ;

      }

      while($ValeurNumerique < 1) ;

      ?>

Pour visualiser l'aperçu, en cliquant ici. [Exemple 19].

Interruption de l'exécution d'une structure de contrôle ou d'un script :

Pour interrompre l'exécution d'un morceau de code par exemple, trois approches sont envisageables, selon l'effet recherché.

Pour arrêter l'exécution d'une boucle, vous pouvez utiliser l'instruction break, comme nous l'avons déjà fait dans la section traitant de la structure switch. Lorsqu'une instruction break est insérée dans une boucle, l'exécution du script se poursuit par la ligne du script qui succède à la boucle.

Pour interrompre l'exécution d'une itération d'une boucle, et passer directement à l'itération suivante, vous pouvez employer l'instruction continue.

Pour interrompre définitivement l'exécution d'un script PHP, vous pouvez utiliser l'instruction exit. Celle-ci apparaît particulièrement utile lors de processus de vérification d'erreur. Par exemple, l'exemple 10 donné plus haut de cette leçon, pourrait être modifié de la manière suivante :

if ($TotalQty == 0)

{

    echo "<font face = Arial size = 4 color = red> <center>" ;

    echo "<b> Vous n'avez pas command&eacute; aucun article sur la page pr&eacute;c&egrave;dente ! Veuillez recommencer, en vous remerciant de votre visite ! </b> <BR/>" ;

    echo "</center> </font>" ;

}

else

{

    exit ; // On interrompre une partie du programme pour trouver l'erreur par exemple ...

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #0000FF> <b><u>R&eacute;capitulatif de votre commande</u> : </b> </font> <BR/> <BR/>" ;

if ($ResisQty >0)

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $ResisQty . "</font>" ;

if ($CondosQty >0)

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $CondosQty . "</font>" ;

if ($TransisQty >0)

    echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font face = Arial size = 4 color = #000000>" . $TransisQty . "</font>" ;

}

Pour visualiser l'aperçu, en cliquant ici. [Exemple 20].

L'appel de la fonction exit empêche l'interpréteur PHP d'exécuter le reste du script.

Important : ne pas mettre l'instruction exit entre les instructions if et else, car cela ne peut fonctionner ainsi, le programme continuera à fonctionner jusqu'à la fin de sa boucle If - else, en revanche, vous pouvez mettre exit, en sortie de else comme évoqué en couleur rouge.

Fin de cette première leçon , la prochaine sera consacrée "à l'enregistrement de la commande de sorte à pouvoir la retrouver et la traiter ultérieurement", que nous verrons par la suite de la deuxième leçon.










Nombre de pages vues, à partir de cette date : le 23 MAI 2019

compteur de visite

    




Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web. 

Version du site : 10. 5. 14 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 19 MAI 2019.   

Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en MAI 2019.