Le transtypage automatique qui peut être fait pour les comparaisons doit être pris en compte pour que ces instructions donnent les résultats attendus.

### Instruction conditionnelle if

Comme dans tous les langages, c'est l'instruction la plus utilisée. Le test d'une condition renvoie soit true, soit false. Si la condition est vraie, le traitement est effectué.

Avec un bloc d'instructions introduit par else, nous pouvons spécifier un traitement si la condition est fausse. Nous pouvons aussi enchaîner des tests avec l'instruction elseif.

    if (condition) {
    	instruction;
    	...
    }
    if (condition) {
    	instruction;
    	...
    } else {
    	instruction;
    	...
    }
    if (condition_1) {
    	instruction;
    	...
    } elseif (condition_2) {
    	instruction;
    	...
    } elseif (condition_3) {
    	instruction;
    	...
    } else {
    	instruction;
    	...
    }

Les accolades entourant les blocs de traitement ne sont obligatoires que s'il y a plusieurs instructions dans les blocs, mais je vous recommande fortement de toujours utiliser les accolades.

Exemple : Instruction conditionnelle if
<!DOCTYPE html> <html lang="fr"> <head><title>Instruction conditionnelle if</title></head> <body> <?php $x = 1; $y = 2; $z = 3; //------------------------------------------------------ if ($x == 1) { echo 'x est égal à 1'; $x ++; } //------------------------------------------------------ if ($x != 1) { echo '<hr>x est différent de 1'; } else { echo '<hr>x est égal à 1'; } //------------------------------------------------------ if ($x == $y) { echo '<hr>'; echo 'x est égal à y'; } elseif ($y == $z) { echo '<hr>'; echo 'y est égal à z'; } elseif ($x == $z) { echo '<hr>x est égal à z'; } else { echo '<hr>'; echo 'rien n\'est égal à rien'; } ?> </body> </html>

Vous devez être vigilant au transtypage automatique qui est fait par PHP pour comparer des valeurs qui ne sont pas du même type et éventuellement utiliser l'opérateur === plutôt que l'opérateur ==.

### Instruction conditionnelle switch

Quand la valeur d'une variable particulière détermine différents choix de traitement, nous pouvons utiliser l'instruction conditionnelle switch.

    switch (expression) {
    case valeur_1:
    	instruction;
    	...
    	break;
    case valeur_2:
    	instruction;
    	...
    	break;
    default:
    	instruction;
    	...
    }

La valeur de expression est comparée à la valeur définie par chaque case. instruction est n'importe quelle instruction ou suite d'instructions PHP.

Si une égalité est trouvée entre la valeur de expression et celle des case, les instructions associées au case sont exécutées. Si aucune égalité n'est trouvée, les instructions contenues dans le default sont exécutées.
L'emploi de l'instruction break arrête l'exécution des instructions contenues dans le case. Si break n'est pas employé, les instructions contenues dans les cases suivants sont exécutées.

Exemple : Instruction conditionnelle switch
<!DOCTYPE html> <html lang="fr"> <head><title>instruction switch</title></head> <body> <?php $seconde = date('s'); echo 'Seconde = ', $seconde; //------------------------------------------------------ switch ($seconde) { case 1 : echo '<br>un'; break; case 2 : echo '<br>deux'; break; case 3 : echo '<br>trois'; break; default : echo '<br>plus grande que trois'; } //------------------------------------------------------ $seconde /= 10; $seconde = (int) $seconde; //------------------------------------------------------ // Dans le switch suivant, il n'y a pas de break. switch ($seconde) { case 0 : echo '<br>inférieur à 10'; case 1 : echo '<br>inférieur à 20'; case 2 : echo '<br>inférieur à 30'; case 3 : echo '<br>inférieur à 40'; case 4 : echo '<br>inférieur à 50'; default : echo '<br>inférieur à 60'; } ?> </body> </html>

Vous devez être vigilant au transtypage automatique qui est fait par PHP pour comparer des valeurs qui ne sont pas du même type.