Les instructions conditionnelles permettent de poser une condition avant d'exécuter un bloc d'instructions.
L'instruction conditionnelle la plus répandue dans les scripts demeure la fameuse structure if.
if (condition) { bloc d'instructions... } if ($y != 0) { echo "$x / $y = " . $x / $y; }
L'instruction if peut être accompagnée de else, voire d'une combinaison else if afin de formuler une alternative par défaut (sinon) ou une ou plusieurs conditions différentes (sinon si).
if (Première condition) { Premier bloc d'instructions... } else if (Seconde condition) { Second bloc d'instructions... } ... else if (Nième condition) { Nième bloc d'instructions... } else { bloc d'instructions par défaut... } if ($journee == 'matin') { echo "C'est le matin !"; } else if ($journee == 'après-midi') { echo "C'est l'après-midi !"; } else if ($journee == 'soirée') ( echo "C'est la soirée !"; ) else { echo "C'est la nuit !"; }
Néanmoins, une telle structure conditionnelle peut être remplacée par une instruction switch dont le fonctionnement est similaire et en outre la syntaxe est bien plus compacte.
switch ($variable) { case valeur_1 : Premier bloc d'instructions... break; case valeur_2 : Second bloc d'instructions... break; ... case valeur_N : Nième bloc d'instructions... break; default : bloc d'instructions par défaut... break; } switch ($journee) { case 'matin' : echo "C'est le matin !"; break; case 'après-midi' : echo "C'est l'après-midi !"; break; case 'soirée' : echo "C'est la soirée !"; break; default : echo "C'est la nuit !"; break; }
La variable $variable est comparée successivement à chacune des valeurs explicitée par l'instruction case.
C'est pourquoi, l'instruction break est nécessaire afin de quitter la structure conditionnelle après que la condition adéquate eut été trouvée.
Par ailleurs, correspondant à else, l'instruction default fournit une alternative par défaut à switch.
L'instruction ternaire offre une structure plus compacte sous réserve de ne proposer que deux possiblités selon une condition spécifiée.
$resultat = condition ? première_alternative : seconde_alternative;
Si la condition est vraie alors la première alternative est retournée, sinon c'est la seconde.