|
|
|
| Auteur : Frédéric Jacquenod Adaptation : Christophe Magdelaine |
Les expressions conditionnelles et les boucles
Introduction
Nous avons vu les différents opérateurs utilisables en php. Nous allons maintenant voir les expressions et boucles dans lesquelles se retrouvent généralement ces opérateurs.Les expressions conditionnelles
Ces tests permettent de tester la validité des expressions et, en fonction du résultat vrai ou faux, d'effectuer les opérations adéquates.if
if(expression) {
actions1 réalisées si le résultat de l'expression est vrai
}
else {
actions2 réalisées si le résultat de l'expression est faux
}
exemple
<HTML>
<?
if("$code" == "987654")
{
print "
<META HTTP-EQUIV=REFRESH CONTENT=\"6;URL=http://www.monsite.com/entreevalide.php\">
<BODY BGCOLOR=#FFFFFF> <CENTER>
<IMG SRC=IMAGES/ok.gif>
<BR>
<FONT SIZE=5>
Bonjour votre mot de passe est valide<BR>
vous allez bientôt pouvroir accéder à notre<BR>
zone privée<BR>
</FONT>
";
}
else
{
print "
<META HTTP-EQUIV=REFRESH CONTENT=\"6;URL=http://www.monsite.com/erreur.php\">
<BODY BGCOLOR=#FFFFFF> <CENTER>
<IMG SRC=IMAGES/erreur.gif>
<BR>
<FONT SIZE=5>
Bonjour votre mot de passe est erroné<BR>
veuillez entrez un mot de passe valide<BR>
</FONT>
";
}
?>
<BODY>
</HTML>
if(){}else{if()else{...}}
Vous pouvez alors utilisez une alternative grace au mot clé elsif.
if (expression)
{
action1 si la valeur d'expression est vraie
}
elseif (expression2)
{
action2 si la valeur de expression est fausse et si la valeur d'expression2 est vraie
}
elseif (expression3)
{
action3 si la valeur de expression est fausse, la valeur d'expression2 est fausse et si la valeur d'expression3 est vraie
}
......
else
{
actionn si toutes les valeurs des expressions précédentes sont fausses
}
switch
switch (expression) {
case valeur1 : actions1;
break;
case valeur2 : actions2;
break;
...
case valeurn ; actionsn;
break;
default : actions par défaut;
break;
}
exemple
<HTML>
<?
switch($type)
{
case "mathematiques" :
print "<meta http-equiv=refresh content=\"6;
URL=qcmmath.html\">";
break;
case "histoire de l art" :
print "<meta http-equiv=refresh content=\"6;
URL=artqcm.html\">";
break;
case "droit" :
print "<meta http-equiv=refresh content=\"6;
URL=droitqcm.html\">";
break;
case "ecologie" :
print "<meta http-equiv=refresh content=\"6;
URL=ecoloqcm.html\">";
break;
case "culture generale" :
print "<meta http-equiv=refresh content=\"6;
URL=cultureqcm.html\">";
break;
default :
print "Si vous ne choisissez rien je fais comment ?";
exit;
}
print "<BODY BGCOLOR=#FFFFFF> <CENTER>
Vous avez choisi le domaine <FONT COLOR=green>$type</FONT>";
?>
<BODY>
</HTML>
Les boucles
Les boucles permettent de répéter les mêmes actions selon la valeur de l'expression indiquée dans le test.while
Cette boucle appelée en algorithmique « tant que » permet d'effectuer les mêmes opérations (bloc d'instructions) contenu dans cette boucle tant que la valeur de l'expression est vraie.
while(expression) {
instructions;
}
exemple
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR=white>
<font size=4><U>Bienvenue sur le site de Mathématiques Plus</U></font>
</CENTER>
<BR>
<FORM ACTION=while.php METHOD="POST">
<LI><FONT COLOR=green SIZE=3>
Choisissez le nombre dont<BR>
vous désirez la table de multiplication
</FONT>
<UL>
<LI>Donnez le chiffre <INPUT TYPE=TEXT NAME="nombre" SIZE=3>
</UL>
<LI><FONT COLOR=green SIZE=3>Donnez la borne de la table.</FONT>
<BR> (Le nombre doit etre supèrieur à 0)
<UL>
<LI>Donnez la borne <INPUT TYPE=TEXT NAME="borne" SIZE=3>
</UL>
</OL>
<INPUT TYPE=SUBMIT VALUE="Soumettre">
<INPUT TYPE=RESET VALUE="Reset">
</FORM>
</BODY>
</HTML>
<html>
<?
print "<font size=3>Vous avez demandez la table de <BR>multiplication de
<font color=green>$nombre</font> jusqu'à la borne <font color=green>
$borne</font></font><BR><BR>";
print "<table bgcolor=yellow border=1>";
$cpt=0;
while($cpt <="$borne)
{
$resultat=$nombre*$cpt;
print "<tr>
<td align=center>$nombre * $cpt</td>
<td align=center>=</td>
<td align=center bgcolor=pink>$resultat</td>
<tr>";
$cpt++;
}
?>
</table>
</body>
</html>
do ... while
Cette boucle ressemble à la boucle précédente while.
do {
instructions;
}
while(expresion);
exemple
Nous reprenons le même formulaire que précédemment en modifiant seulement la boucle de traitement dans le programme php.
<html>
<?
print "<font size=3>Vous avez demandez la table de <BR>multiplication de
<font color=green>$nombre</font> jusqu'à la borne <font color=green>
$borne</font></font><BR><BR>";
print "<table bgcolor=yellow border=1>";
$cpt=0;
do
{
$resultat=$nombre*$cpt;
print "<tr>
<td align=center>$nombre * $cpt</td>
<td align=center>=</td>
<td align=center bgcolor=pink>$resultat</td>
<tr>";
$cpt++;
}while($cpt <="$borne);
?>
</table>
</body></html>
for
Cette boucle permet d'effectuer les instructions du bloc lorsque l'on connaît la valeur de la borne. A la différence du while vous n'avez pas à vous soucier de l'arrêt de la boucle, le compteur s'incrémente de lui-même.
for (valeur de départ;valeur de fin de boucle;incrément du compteur) {
instructions;
}
<html>
<?
print "<font size=3>Vous avez demandez la table de <BR>multiplication de
<font color=green>$nombre</font> jusqu'à la borne <font color=green>
$borne</font></font><BR><BR>";
print "<table bgcolor=yellow border=1>";
for($cpt=0;$cpt<="$borne;$cpt++)
{
$resultat=$nombre*$cpt;
print "<tr>
<td align=center>$nombre * $cpt</td>
<td align=center>=</td>
<td align=center bgcolor=pink>$resultat</td>
<tr>";
}
?>
</table>
</body></html>
foreach
Une dernière boucle particulière est foreach qui permet de parcourir le contenu d'une liste ou d'un tableau associatif et d'en extraire les couples clé-valeur (voir la partie définition de variables).
foreach ($liste as $valeur) {
instructions;
}
foreach ($tableau as $cle=>$valeur) {
instructions;
}
exemple
<html>
<body BGCOLOR=#FFFFFF>
<B><U>La boucle foreach</U><Br><Br><B>
<?
# J'affecte les éléments à ma liste
$liste = array( "4 bougies","cagouille","php4");
# J'affiche le nombre d'éléments de ma liste ainsi que son contenu
$i=0;
print "Etat de la liste <U>avant</U> le tri<BR>";
foreach($liste as $valeur)
{
print "\$liste[$i] vaut <FONT COLOR=green>$valeur</FONT><BR>";
$i++;
}
print "<HR SIZE=8>";
# Essai sur un tableau associatif
$tab = array( "fred"=>"eric", "dom"=>"tom");
print "Le tableau associatif tab contient";
print " <FONT COLOR=green>".count($tab)."</FONT> élements<BR>";
foreach ($tab as $cle=>$valeur)
{
print "\$tab[<FONT COLOR=green>$cle</FONT>] vaut";
print " <FONT COLOR=green>$tab[$cle]</FONT><BR>";
}
?>
</body></html>
Nous vous informons que ce cours constitue une œuvre protégée en France par le Code de la Propriété Intellectuelle, et à l’étranger par les conventions internationales en vigueur sur le droit d’auteur. La violation de l’un des droits d’auteur de l’œuvre est un délit de contrefaçon. Il est donc interdit, à titre privé ou public, de reproduire, copier, vendre, revendre ou exploiter, que ce soit dans un but commercial ou purement gratuit, ce cours, sauf accord exprès et préalable de son auteur.
| RESSOURCES GRATUITES |
| |
| |
| |
| |
| |
| |
| |
| PRATIQUE / OUTILS |
| |
| |
| |
| |
| TÉLÉCHARGEMENTS |
| |
| |
| |
| INFOS SITE |
| |
| |
| |
| |
| PARTENAIRES |
| |
| |
| |
| |
| |
| |
|
|