If (le test simple)
Le premier test dont nous allons parler est donc le test simple: if ; qui se traduit par "si".
La structure est la suivante:
if( condition )
action
Si la condition est vérifiée (si condition vaut true, ou vrai), alors l'action est exécutée. Dans le cas contraire, l'action n'est pas exécutée.
Voyons avec un premier exemple, il s'agit d'un test d'égalité:
L'action n'est effectuée que si l'égalité a lieu.
.01 .02 .03 .04 .05 .06 .07 .08 .09 .10
| |
<?php
$age = 18;
if( $age == 18 ) // vous remarquerez qu'il n'y a pas de ; à la fin de cette ligne
echo 'Vous avez 18 ans!';
?>
Affiche:
Vous avez 18 ans
|
Le point important ici est l'operateur == , à ne pas confondre avec le = . Un simple = permet de donner une valeur à une variable, et l'operateur == permet de tester l'égalité entre les deux opérandes. Ainsi, le code suivant n'affichera rien:
.01 .02 .03 .04 .05 .06 .07
| |
<?php
$age = 18;
if( $age = 18 )
echo 'Vous avez 18 ans!';
?>
|
Les accolades:
Dans les deux morceaux de code ci-dessus, si le test est validé, une seule action est effectuée. Mais vous pourriez vouloir en effectuer plusieurs; dans ce cas, il faut utiliser des accolades:
.01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 .13 .14
| |
<?php
$age = 18;
if( $age == 18 ) //
{
echo 'Vous avez 18 ans.<br />';
echo 'Vous pouvez passer votre permis de conduire!';
}
?>
Affiche:
Vous avez 18 ans.
Vous pouvez passer votre permis de conduire!
|
Si vous aviez mis le code suivant, cela n'aurait pas marché:
.01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 .13 .14 .15
| |
<?php
$age = 17;
if( $age == 18 )
{
echo 'Vous avez 18 ans.<br />';
}
echo 'Vous pouvez passer votre permis de conduire.';
?>
Affiche:
Vous pouvez passer votre permis de conduire.
|
La variable $age est égal à 17, donc la phrase "Vous avez 18 ans" ne rentre pas dans la condition du test et ne s'affiche pas. Par contre la phrase "Vous pouvez passer votre permis de conduire" s'affiche puisqu'elle n'appartient pas au test if.
Vous pouvez mettre des accolades pour une seule action:
.01 .02 .03 .04 .05 .06 .07 .08 .09 .10 .11 .12 .13
| |
<?php
$age = 18;
if( $age == 18 )
{
echo 'Vous avez 18 ans';
}
?>
Affiche:
Vous avez 18 ans
|
Le code ci-dessus est parfaitement correct, mais il est plus lourd que sa version sans accolades (la lisibilité du programme peut s'en trouver réduite), privilégier la version sans accolades!