W3docs

endif

Le mot-clé "endif" est une structure de contrôle PHP qui marque la fin d'une instruction "if". Découvrez sa syntaxe et son utilisation dans cet article.

endif

Le mot-clé endif fait partie de la syntaxe alternative de PHP pour les structures de contrôle. Au lieu d'encadrer le corps d'une instruction if avec des accolades ({ ... }), la syntaxe alternative ouvre le bloc avec un deux-points (:) et le ferme avec endif;. Ce style a été ajouté spécifiquement pour permettre à PHP de s'intégrer proprement dans les templates HTML.

Cet article couvre la syntaxe de endif, quand l'utiliser, et les pièges à éviter.

Syntaxe

Un bloc if standard utilise des accolades ; la syntaxe alternative remplace l'accolade ouvrante par : et l'accolade fermante par endif; :

La syntaxe PHP de endif

// Brace syntax
if ($condition) {
  // code to be executed
}

// Alternative syntax — equivalent
if ($condition):
  // code to be executed
endif;

Deux règles importantes :

  • La ligne de condition se termine par un deux-points (:), et non une accolade ouvrante.
  • Le bloc se ferme avec endif, qui doit être suivi d'un point-virgule (;). Omettre le point-virgule est la cause la plus courante d'une erreur d'analyse ici.

Le même schéma s'applique aux autres structures de contrôle : endforeach, endfor, endwhile et endswitch.

Exemples

Voici quelques exemples pratiques de l'utilisation du mot-clé endif :

Exemples de endif en PHP

<?php

// Example 1
$x = 5;
if ($x == 5):
  echo "The value of x is 5." . PHP_EOL;
endif;

// Output: The value of x is 5.

// Example 2
$x = 10;
if ($x > 5):
  echo "The value of x is greater than 5.";
else:
  echo "The value of x is less than or equal to 5.";
endif;

// Output: The value of x is greater than 5.

Dans ces exemples, nous utilisons le mot-clé endif pour marquer la fin d'une instruction if. La syntaxe alternative prend également en charge les branches else et elseif au sein du même bloc, qui se ferment toutes avec un seul endif; :

<?php

$score = 82;

if ($score >= 90):
  echo "Grade: A";
elseif ($score >= 80):
  echo "Grade: B";
elseif ($score >= 70):
  echo "Grade: C";
else:
  echo "Grade: F";
endif;

// Output: Grade: B

Notez qu'avec la syntaxe alternative, on écrit elseif en un seul mot — else if (deux mots) n'est pas valide dans un bloc à syntaxe alternative.

Utilisation de endif dans les templates HTML

C'est la raison d'être de endif. Lorsque PHP et HTML sont mélangés, une accolade fermante } est facile à perdre de vue, tandis que <?php endif; ?> se lit presque comme une balise fermante et indique clairement quelle structure se termine. Comparez les deux styles :

<!-- Hard to scan: brace floating in markup -->
<?php if ($loggedIn) { ?>
  <p>Welcome back!</p>
<?php } ?>

<!-- Self-documenting: alternative syntax -->
<?php if ($loggedIn): ?>
  <p>Welcome back!</p>
<?php endif; ?>

La forme alternative rend vos templates plus lisibles, surtout lorsque les blocs s'imbriquent, ce qui explique pourquoi la plupart des anciens templates PHP (et de nombreux frameworks de templating intégrés) s'appuient dessus.

Pièges courants

  • Le point-virgule après endif est obligatoire. endif sans ; génère une erreur d'analyse.
  • Ne mélangez pas les syntaxes dans un même bloc. Vous ne pouvez pas ouvrir avec { et fermer avec endif, ni ouvrir avec : et fermer avec }.
  • Utilisez elseif, pas else if. La forme en deux mots n'est autorisée qu'avec la syntaxe à accolades.

Avantages

L'utilisation du mot-clé endif présente plusieurs avantages, notamment :

  • Lisibilité améliorée : Le mot-clé endif rend les structures de contrôle plus faciles à lire, notamment dans les templates où le code HTML et PHP sont mélangés.
  • Structure plus claire : Il fournit un marqueur de fermeture distinct et nommé pour chaque bloc de contrôle, réduisant le risque d'accolades mal appariées dans les mises en page complexes.

Conclusion

Le mot-clé endif permet de fermer un bloc if avec un marqueur clair et nommé plutôt qu'une accolade, ce qui est particulièrement utile lorsque PHP est intégré dans du HTML. Pour aller plus loin, consultez le guide complet if / else / elseif, et explorez les fermetures équivalentes à syntaxe alternative endforeach, endfor et endswitch.

Pratique

Pratique
Lesquelles des affirmations suivantes sont vraies concernant la directive endif en PHP ?
Lesquelles des affirmations suivantes sont vraies concernant la directive endif en PHP ?
Was this page helpful?