La structure IF en PHP




  1. A quoi sert le IF ?

Le IF permet tout simplement de tester des valeurs afin savoir quelle action doit être faite.
Par exemple, vous demander à l'utilisateur le résultat d'une opération entre 2 nombres. Si il donne le bon résultat, vous écrivez "Bravo" à l'écran, sinon, vous écrivez "Gros nul".

Cela permet de tester d'autre type d'information tel que l'ouverture d'un fichier, la connexion à une base de données...
On va donc maintenant étudier quelques exemples de fonctionnement du IF et les différentes syntaxes qui lui correspondent !



  2. IF (condition) {...}

La forme de base du IF est la suivante :

<?
if ([Condition]) {
  [Bloc_de_code]
}
?>
  • Le "if" permet de définir que le bloc de code dépend d'une condition ("if" veut dire "si" en anglais).
  • Ensuite, les parenthèses permettent de définir la condition. Une condition est une valeur booléenne, dont je parlerai un peu plus tard.
  • Enfin, les accolades définissent le bloc de code qui ne sera exécuté que si la condition est vraie.
On va juste faire un exemple de base où on vérifie l'égalité entre 2 valeurs. Dans $v1 je mets 5, dans $v2 je mets 7. Je fixe $v3 à 12, et $v4 est le résultat de l'addition entre $v1 et $v2.

<?
$v1 = 5;
$v2 = 7;
$v3 = 12;
$v4 = $v1+$v2;
if ($v3 == $v4) {
  echo "Le calcul est bon !<br>";
}
?>
ce qui a comme résultat :
Le calcul est bon !

Ce bout de code est donc fait pour vérifier l'égalité entre $v3 et $v4.
Il est vrai que ceci n'est pas forcément passionnant comme vision des choses, mais ce n'est qu'un exemple !

Maintenant, vous voulez afficher "Le calcul et bon !" si le calcul est bon, et "le calcul est faux !" si le calcul est ... faux.

Pour cela, vous devez utiliser la suite de la structure du if, à savoir, le else !



  3. IF (condition) {...} ELSE {...}

La forme de base du IF est la suivante :

<?
if ([Condition]) {
  [Bloc_de_code_si_condition_vraie]
}
else {
  [Bloc_de_code_si_condition_fausse]
}
?>
La différence par rapport à avant est donc simple : ajout d'une partie de code avec le Else !
L'utilité du else est on ne peut plus évidente : si la condition est vraie, alors le premier bloc de code est exécuté, si la condition est fausse, c'est le second bloc qui est exécuté ("else" signifie "sinon" en anglais !).

Dans notre exemple, on veut ajouter le else pour si l'utilisateur se trompe, voila ce que ca donne :

<?
$v1 = 5;
$v2 = 7;
$v3 = 12;
$v4 = $v1+$v2;
if ($v3 == $v4) {
  echo "Le calcul est bon !<br>";
}
else {
  echo "Le calcul est faux !<br>";
}
?>
ce qui a comme résultat :
Le calcul est bon !

Malgré tout l'intérêt d'un tel exemple, on préférerait que ce soit l'utilisateur qui saisissent le résultat pour comparer (genre test de calcul mental !).
Voila un exemple avec un formulaire :


  3. 1. Exemple de formulaire pour la demande de résultat :

<?
  $val1 = 10;
  $val2 = 7;
?>
<form action="structif.php" method="POST" name="calcul1">
<? echo "$val1+$val2 = " ?>
<input name="resultat" size=5>
<input type=hidden name="val1" value="<? echo $val1 ?>">
<input type=hidden name="val2" value="<? echo $val2 ?>">
<input type=submit value="Alors ?">
</form>
Ce qui donne comme résultat :
10+7 =



  3. 2. Exemple de traitement PHP:

<?php
$reponse = $val1+$val2;
if ($resultat == $reponse) {
  echo "Le calcul est bon !<br>";
}
else {
  echo "Le calcul est faux !<br>";
}
?>
Ce qui donne comme résultat :
Vous pouvez changer la valeur dans la zone de saisie et voir les différents résultats !



  4. ...Elseif...

Dans le Else, on peut aussi ajouter un autre if ! Par exemple, après avoir testé l'égalité, on peut vouloir voir si le résultat est plus grand ou plus petit :

<?php
$reponse = $val1+$val2;
if ($resultat == $reponse) {
  echo "Le calcul est bon !<br>";
}
else {
  if ($resultat > $reponse) {
    echo "Le calcul est faux ! Le résultat est plus petit <br>";
  }
  else{
    echo "Le calcul est faux ! Le résultat est plus grand <br>";
  }
}
?>
Ce qui donne comme résultat :
Le calcul est faux ! Le résultat est plus grand
Dans ce cas, on peut également écrire :

<?php
$reponse = $val1+$val2;
if ($resultat == $reponse) {
  echo "Le calcul est bon !<br>";
}
elseif ($resultat > $reponse) {
  echo "Le calcul est faux ! Le résultat est plus petit <br>";
}
else{
  echo "Le calcul est faux ! Le résultat est plus grand <br>";
}
?>
Ce qui donne comme résultat :
Le calcul est faux ! Le résultat est plus grand

Le résultat sera le même, mais la relecture et l'écriture en est fortement simplifiée.



  5. Autre syntaxe



  5. 1. avec du code HTML

Il est possible de mettre du code HTML directement, et on obtient quelque chose qui, selon les cas, peut être plus ou moins lisible !


  5. 2. avec les ':'

On peut également écrire la structure ainsi :
<?php
if ($val1 == 7):
  echo "val1 est égal à 7";
else:
  echo "val1 est différent de 7 !";
endif;
?>
Ce qui donne comme résultat :
val1 est différent de 7 !


  5. 3. avec le '?'

La syntaxe générale est :
<?php
  echo (Condition)?[Bloc_de_code_si_condition_vraie]:[Bloc_de_code_si_condition_fausse];
?>
Pour notre exemple, on obtient donc le résultat suivant :

<?php
  echo ($val1 == 10)?"val1 est égal à 10":"val1 est différent de 10 !";
?>
Ce qui donne comme résultat :
val1 est égal à 10




Page modifiée le : 24/07/2003
Site modifié le : 16/05/2016


Valid XHTML 1.0 Transitional