La syntaxe des structures conditionnelles est identique à celle du C :
<?php
if ($a > $b)
{
echo "<p>a est plus grand que b</p>";
}
else
{
echo "<p>a n'est pas plus grand que b</p>";
}
?>
Notons que l'utilisation des accolades n'est nécessaire que si le bloc d'instructions de la condition contient plusieurs instructions.
En pratique, lorsque le test sert à afficher du HTML, il existe une autre syntaxe,
plus concise, qui permet d'éviter l'utilisation des fonctions d'affichage comme
echo
. L'avantage de cette deuxième solution est que, dans l'éditeur, la coloration
syntaxique est appliquée au code HTML, ce qui n'est pas le cas avec l'exemple précédent :
<?php if ($a > $b): ?>
<p>a est plus grand que b</p>
<?php else: ?>
<p>a n'est pas plus grand que b</p>
<?php endif; ?>
}
Il existe une syntaxe courte qui est appropriée lorsque le test et les blocs d'instructions sont très courts :
$var = (test) ? instruction si vrai : instruction si faux;
Cette syntaxe est particulièrement synthétique lorsqu'elle est combinée avec des balises PHP courtes :
<?= ($a>$b) ? '<p>a est plus grand que b</p>' : '<p>a n\'est pas plus grand que b</p>' ?>
L'exemple interactif suivant montre les trois syntaxes :
Le code suivant affiche deux boutons (log in
et log out
):
<?php
$isLogged = true; // or false;
?>
<!-- Display if user is not logged -->
<div class="button_cont" align="center">
<a
href='#'
target="_blank"
style = "background: #0f0; text-decoration: none; padding: 10px; border-radius: 5px; display:inline-block;
">
Log in
</a>
</div>
<!-- Display if user is logged -->
<div class="button_cont" align="center">
<a
href='#'
target="_blank"
style = "background: #f00; color:white; text-decoration: none; padding: 10px; border-radius: 5px; display:inline-block;
">
Log out
</a>
</div>
Ajoutez une structure conditionelle afin d'afficher le bouton approprié selon
l'état courant de la variable booléenne $isLogged
:
$isLogged
est faux, affichez le bouton Log in
$isLogged
est vrai, affichez le bouton Log out