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