![]()
|
||
|
dernière mise à jour le
27/08/2006 |
Structures de contrôle en PHPIntroductionComme dans tout langage de programmation, le déroulement et le fonctionnement d'un programme PHP sont contrôlés par ce qu'on appelle des structures de contrôle : tests conditionnels, boucles, sauts... PHP rassemble la plupart les structures de contrôle connues dans un format identique au C. Structures conditionnellesifexpr1 et expr2 sont des expressions qui doivent renvoyer une valeur
booléenne. Cela peut être un test comme " On peut enchaîner autant de elseif que nécessaire. Bien entendu, les elseif et else ne sont pas obligatoires, cela dépend de ce que l'on veut tester. Si le code à exécuter lorsqu'une condition est validée ne comporte qu'une seule ligne, on peut omettre les accolades ("{" et "}"). switchCe structure de contrôle présente une alternative au if lorsque beaucoup de tests elseif sont à effectuer : La valeur de expr1 est comparée successivement à expr2,
expr3... jusqu'à ce qu'une correspondance est trouvée. Si aucune correspondance
n'est trouvée, c'est le code indiqué par default qui est exécuté
(code exécuté par défaut). expr1, expr2... peuvent être n'importe quoi
(integers, strings, resultats d'un appel de fonction...), pourvu que " break est là pour signaler la fin d'un bloc d'instructions case. Si on oublie de mettre break, le code du case suivant est exécuté ! (expr)?valeur1:valeur2Sous ce titre peu évocateur se cache l'une des structures les plus intéressantes de PHP. Elle est directement reprise du C. Cette structure s'utilise en fait directement dans les expressions. Elle permet de faire des tests simples et de récupérer un résultat exploitable directement. Voici un exemple : echo "$nbr page".(($nbr>1)?"s":"")." trouvée".(($nbr>1)?"s":"").";Ceci est censé afficher le nombre de pages trouvées après une requête dans une phrase correctement orthographiée (i.e. "3 pages trouvées" ou "1 page trouvée"). Explication : expr est d'abord évalué ; si le résultat est vrai, alors on renvoie valeur1 (un "s" dans l'exemple), sinon, on renvoie valeur2 (la chaîne de caractères vide dans l'exemple). C'est très simple et très efficace, ceci évite les constructions lourdes avec un if. Bien entendu, valeur1 et valeur2 peuvent être n'importe quoi. BouclesforC'est le type de construction sûrement le plus utilisé, même si ce n'est pas le plus simple : La boucle fort se construit avec 3 expressions :
Voici un petit exemple simple de compteur (on compte de 1 jusqu'à 10) : Les instructions break et continue peuvent être utilisées, respectivement soit pour terminer immédiatement et définitivement la boucle (l'itération en cours est interrompue) pour continuer le programme avec le code qui suit, soit pour finir immédiatement l'itération en cours, mais on ne sort pas de la boucle (on continue par l'évaluation de l'expression d'itération). Tout comme pour if, si le code à exécuter à chaque itération se limite à une ligne, on peut omettre les accolades ("{" et "}"). whileC'est la deuxième façon de faire des boucles en PHP. C'est plus simple qu'avec for car il n'y a qu'une seule expression à utiliser dans la construction : Le fonctionnement est assez simple : à chaque tours de boucle, expr est évaluée. Si le résultat est vrai, le code est exécuté avant de refaire une évaluation de expr et ainsi de suite. Dès que l'évaluation de expr renvoie faux, la boucle est arrétée et le programme continue après. Voici le même compteur que celui de la boucle for : Le risque de la boucle while pour les conpteurs, c'est que l'on peut faire des boucles infinies... Attention, donc, à bien vérifier tous les incréments. Comme pour for, il est possible d'interrompre une boucle while en plus
milieu de l'exécution avec l'instruction break ( Comme toujours, si une seule instruction ne doit être exécutée dans la boucle while, il est possible d'omettre les accolades. do/whileCette structure de contrôle est une variante de while : le test sur expr n'est effectué qu'en fin de boucle, c'est-à-dire que le bloc d'instructions est obligatoirement exécuté au moins une fois. Le fonctionnement de break et continue est le même qu'avec while. de même, on peut enlever les accolades s'il n'y a qu'une seule instruction a exécuter. |
|
|
Copyright © 2000-2006 themanualpage.org - Ce site est soumis aux conditions décrites dans les licences GNU GPL et FDL. |
||