« Programmation PHP/Structures de contrôle » : différence entre les versions
+NavTitre |
|||
Ligne 1 : | Ligne 1 : | ||
{{NavTitre|book={{BASEPAGENAME}}|prev=Mots clefs réservés|next=Bases de données}} |
|||
{{Programmation PHP}} |
{{Programmation PHP}} |
||
Une structure conditionnelle fonctionne de manière à ce que si la valeur de la condition est <code>TRUE</code> alors tel schéma est appliqué, et si la valeur est <code>FALSE</code>, un autre schéma est réalisé. |
Une structure conditionnelle fonctionne de manière à ce que si la valeur de la condition est <code>TRUE</code> alors tel schéma est appliqué, et si la valeur est <code>FALSE</code>, un autre schéma est réalisé. |
Version du 5 août 2008 à 11:56
Une structure conditionnelle fonctionne de manière à ce que si la valeur de la condition est TRUE
alors tel schéma est appliqué, et si la valeur est FALSE
, un autre schéma est réalisé.
Les structures conditionnelles
if - else
La structure la plus simple se présente sous la forme d'un if() {}
et d'un else {}
. Le if
teste une condition :
- Si elle est réalisée le code entre les accolades après le if sera exécuté, puis le serveur passera au code après le
else {}
- Si elle n'est pas réalisée c'est ce qui est entre les accolades suivants le
else
qui sera exécuté.
<?php
if (condition) {
instruction au cas où la condition serait réalisée;
}
else {
instruction au cas où la condition ne serait pas réalisée;
}
?>
Emploi de if seul
Un if
peut être employé seul, en fait le else
étant l'alternative, le code à executer par défault, on peut s'en passer pour n'exécuter un code seulement si une condition est réalisée.
<?php
if (condition) {
condition réalisée; //sinon il ne se passe rien
}
//sinon il ne se passe rien
?>
Emploi de elseif
Lorsqu'une condition n'est pas réalisée, plutôt que de passer directement à l'execution du code par défault (déclaré par else
), il peut être plus judicieux de tester une autre condition (déclarée par elseif
). En clair la structure est similaire à un ordre de préférence :
Symboliquement | Traduction en code |
---|---|
Soit une condition 1 La condition 1 est elle réalisée ? OUI code 1 (puis sortie de la strcture hypothétique) NON la condition 2 est elle réalisée ? OUI code 2 (puis sortie de la strcture hypothétique) NON la condition 3 est elle réalisée ? OUI code 3 (puis sortie de la strcture hypothétique) NON ... (aucune des conditions annexes n'ont été vérifiées) Par défaut executons le code default |
<?php
condition 1
if(condition 1)
{ code 1; }
elseif(condition 2)
{ code 2; }
elseif(condition 3)
{ code 3; }
...
else
{ code default }
?>
|
Imbrication
On peut imbriquer les if
les uns dans les autres. Simplement lorqu'un if
imbriqué aura fini d'être exécuté, il retournera à l'étape logique suivante du rang hiérarchique supérieur.
<?php
if() {
if() { }
elseif() { }
else { }
}
elseif() {}
else {}
?>
Notons que dans ce cas mieux vaut imaginer tous les cas de figure pour ne pas se retrouver avec une structure hypothétique vacillante en ce que la situation n'aura pas été prévue.
switch
Lorsque l'on teste des conditions en nombre important sur une même valeur, l'utilisation de if
est fastidieuse. Existe bien heureusement une structure créée pour cet usage le switch
. On déclare la variable à tester avec switch
: switch($surlasellette) {}
. Dans ce switch
on utilise case
pour déclarer la valeur de la variable pour laquelle une action est envisagée : case "valeur" :
(ici ne pas oublier les deux points !) une suite d'instruction s'ensuit et est clôturée obligatoirement par break;
. La valeur par défaut, corolaire du else
pour if
, est introduite par default :
.
Avec if | Traduction en switch |
---|---|
<?php
$valeur = "testable";
if($valeur == "ce n'est pas cela")
{echo "ok";}
elseif($valeur == "ce n'est pas non plus cela")
{echo "ok";}
elseif($valeur == "c'est encore moins cela")
{echo "ok";}
else
{echo "pas d'accord";}
?>
|
<?php
switch (variable)
{
case valeur_1 :
instruction(s);
break;
case valeur_2 :
instruction(s);
break;
...
default :
instruction(s);
}
|
switch
s'imbrique aussi comme if
.
Le plus important étant de ne pas oublier de mettre l'instruction break
avant un nouveau case
.
Les boucles
Une boucle est une instruction qui exécute un code tant qu'une condition établie est vérifiée. Une erreur (jugulée par le temps maximal de génération d'une page fixé par défault à 15 secondes) peut résider dans la présence d'une Boucle infinie, dont la condition est toujours respectée en fait. Les boucles permettent le parcours des tableaux et d'utiliser des données rendues sous la forme de tableau par une fonction de php dialoguant par exemple avec un autre langage. Il en existe de 3 types :
while() { }
for() {}
foreach() {}
while
while
signifie "tant que", ainsi while
fonctionne comme un if
répété tant que la condition est vraie. Pour résumer while est très proche de if
dans son utilisation.
<?php
while (expression) {
instructions(s);
}
?>
for
for signifie "pour", donc comme son nom l'indique, utilise des éléments précisés (entre les parenthèses le suivant) pour fonctionner.
for ( premier élément ; deuxième élément ; troisième élément )
{instruction;}
Ces éléments sont au nombre de trois :
- Le premier est exécuté au début de la boucle dans tous les cas.
- Le second est testé avant chaque exécution de l'instruction ou itération, si il renvoi
TRUE
l'instruction sera exécutée, siFALSE
est renvoyé on sort de la boucle. - La dernière expression est exécutée après chaque itération.
<?php
for(première expression; seconde expression; troisième expression) {
instruction;
}
?>
Attention la structure dans la parenthèse est for( ; ; )
foreach
Les boucles foreach
constituent une manière simple de parcourir des tableaux. Il existe 2 syntaxes :
- La plus simple ne s'intéressant pas aux clés caractéristiques des tableaux associatifs.
- On ne parle pas en terme de nombre mais de chaine de caractère du même type que celui dont on se sert pour nommer une variable (sans le $) dans les tableaux associatifs :
$array['texte']
et non plus seulement$array[999]
.
- On ne parle pas en terme de nombre mais de chaine de caractère du même type que celui dont on se sert pour nommer une variable (sans le $) dans les tableaux associatifs :
Foreach simplifie une tache qui aurait certes été possible avec for
, mais fastidieuse :
Avec for | Avec foreach |
---|---|
<?php
$array = array('valeur1', 'valeur2', 'valeur3');
for($i = 0; $i < $count($array); $i++) {
echo $array[$i]; //renvoi "valeur1valeur2valeur3"
}
?>
|
<?php
$array = array('valeur1', 'valeur2', 'valeur3');
foreach($array as $value) {
echo $value; //renvoi "valeur1valeur2valeur3"
}
?>
|
as
signifiant "comme", on récupère une variable contenant la valeur dans la cellule correspondante.
- La seconde se penche d'avantage sur les tableaux associatifs du type
<?php
$array = array( "ville" => "Montargis", "température" => "15 degrés" );
?>
Ainsi on récupère le nom de la clé et la valeur du champ. En fait la structure $cle => $valeur
est celle de la déclaration de l'array .
<?php
foreach($array as $cle => $valeur) {
commandes;
}
?>
Il est possible d'itérer des objets depuis PHP 5.