Les conditions (1ère partie)

Article écrit par kazhar

Nous présenterons dans cette partie les:
[b]- IF...ELSE
- IF...ELSEIF...ELSE
- SWITCH...CASE[/b]

IF ELSEécrivons un petit programme qui affiche "i est plus grand que 5" si la variable $i est plus grande que 5 et la phrase "i est plus petit que 5" dans le cas contraire.

Code :
<?php
$i = 4;
if ($i > 5)
echo "i est plus grand que 5";
else
echo "i est plus petit que 5";
?>



affichera donc :
i est plus petit que 5

Ce sont les opérateurs de conparaison qui permettent de verifier si un nombres est plus grand qu'un autre.
$a == $b vrai si $a est égale à $b
$a != $b vrai si $a est différent de $b
$a > $b vrai si $a est superieur à $b
$a < $b vrai si $a est inferieur à $b
$a >= $b vrai si $a cest superieur ou égal à $b
$a <= $b vrai si $a est inferieur ou égal à $b

Ecrire if($i) est identique à if ($i != 0) ou ($i != NULL). Cette version condensée est très souvent utilisée en informatique.

Dans notre exemple, une seule action etait realisée. Si plusieurs actions doivent etre réalisées, celles-ci doivent etre regroupées entre des balises {et} pour former un groupe d'instruction.

Code :
<?php
$i = 4;
if ($i >5)
{
echo "nous sommes dans le IF... ";
echo "i est plus grand que 5";
}
else
{
echo "nous sommes dals le ELSE...";
i est plus petit que 5";
}
?>



Pour l'instant, nous n'avons etudié que des exemples ou une seule valeur est testée.
Mais, imaginons que vous voulier dire:
SI la personne a plus de 18 ans ALORS ecrire "homme majeur" SI elle est de sexe masculin.
nous écririons, dans l'etat actuel de nos connaissances:

Code :
<?php
$age = 22;
$sexe = "masculin";
if ($age > 18)
{
if ($sexe = = "masculin")
echo "homme majeur";
}
?>



La facon logique serait pourtant d'exprimer ce test ainsi:
SI la personne a plus de 18 ans ET qu'elle est de sexe masculin ALORS écrire "hommr majeur'
Il s'agit la d'une double expression. l'opérateur (&&) peut etre utilisé pour signifier le ET:

Code :
<?php
$age = 22;
$sexe = "masculin";
if (($age > 18) && ($sexe = = "masculin"))
echo "homme majeur";
?>



L'opérateur (&&) est appelé opérateur logique. Il en existe d'autres qui vont nous permettre de réaliser des tests plus ardus.
$a and $b vrai si $a ET $b sont vraies.
$a && $b vrai si $a ET $b sont vrais (identique à and)
$a or $b vrai si $a OU $b sont vraies
$a || $b vrai si $a OU $b sont vraies (identique à or)
$a xor $b vrai si $a OU $b sont vrais (mais pas les deux)
! $a Vrai si $a est fausse


IF...ELSEIF...
Essayons maintenant d'écrire ceci: si la couleur est rouge, jaune ou bleue, écrire "primaire"
si la couleur est noire, écrire "noire"
si la couleur est blanche, ecrire "blanche"
sinon, écrire "melange"

Afin de réaliser ceci, nous avons besoin d'une nouvelle fonction: else
Ainsi, pour nos couleurs, il faudrait faire:

Code :
<?php
if(($couleur = = "rouge") || ($couleur = = "jaune") || ($couleur = "bleue"))
echo "primaire";
elseif ($couleur = = "noire")
echo "noire";
elseif ($couleur = "blanche")
echo "blanche";
else
echo "melange";
?>




SWITCH:
Supposons maintenant que nous voulions écrire le test suivant:
si la couleur est rouge, écrire "R"
si la souleur est bleue, écrire "B"
si la couleur est jaune, écrire "J"
sinon, écrire "?"

Dans ce cas, il est dommage d'utiliser un if...elseif... Imaginons, en effet, que la couleur coit jaune, il faudrait alors tester si la couleur est rouge, puis tester si la couleur est bleue et enfin tester si elle est jaune. Dans ce genre de cas, ou l'action à réalier ne dépen que de la valeur d'une variable, il est préférable d'utiliser la fonction switch:


Code :
switch ($couleur) {
case "rouge": echo "R";
break;
case "bleue": echo "B";
break;
case "jaune": echo "J";
break;
default: echo "?";
break;
}



Il peut y avoir autant de case que necessaire, mais il ne peut y avoir qu'un seul default (il n'est cependant pas obligatoire).

Le case peut contenir plusieurs instructions, il faut alors ls placer entre le case et le break:


Code :
switch ($couleur) { case "rouge"; echo "couleur: "; echo "R" break; case "bleue"; .......



Les conditions 2e partie

Source : http://www.phportail.net