En html, la règle de base, c’est la fermeture des balises. Un site qui explique bien cela c’est w3schools.com (pas de lien avec le W3C):
“The HTML document itself begins with <html> and ends with </html>.
The visible part of the HTML document is between <body> and </body>.
HTML elements are written with a start tag, with an end tag, with the content in between: <tagname>content</tagname>”
Même si le W3c (= l’organisation qui fabrique tout ça) dit que ce n’est pas toujours obligatoire…
“An html element’s start tag can be omitted if the first thing inside the html element is not a comment.
An html element’s end tag can be omitted if the html element is not immediately followed by a comment.
A head element’s start tag may be omitted if the element is empty, or if the first thing inside the head element is an element.
A head element’s end tag may be omitted if the head element is not immediately followed by a space character or a comment.”
etc.
Autant dire que lorsqu’on écrit du HTML, on se concentre sur la fermeture de ces balises.
Bien, mais le HTML, c’est pas toute la vie du Web, loin de là.
Pour mettre en forme le HTML, il faut du CSS. Et là aussi il y a une syntaxe à respecter: une accolade au début, une accolade à la fin:
“A CSS declaration always ends with a semicolon, and declaration blocks are surrounded by curly braces. (…)
Example:
p {
color: red;
text-align: center;
}
Parfois, on insère dans les pages HTML des petits programmes en langage JavaScript:
“In HTML, JavaScript code must be inserted between <script> and </script> tags.”
On ouvre, on ferme… encore et encore…
Alors, quoi de plus normal que de vouloir, en PHP aussi, ouvrir puis fermer les balises…, hein ? Après tout. Soyons fou ! D’ailleurs la w3school nous dis, à propos de la syntaxe de PHP5:
“A PHP script starts with <?php and ends with ?>:
<?php
// PHP code goes here
?>”
Oui mais voilà, parfois, le PHP on en a besoin en dehors du HTML, et là… ben là c’est subtil:
“Si un fichier est purement du code PHP, il est préférable de ne pas placer la balise de fermeture à la fin du fichier. Ceci permet d’éviter d’oublier un espace ou une nouvelle ligne après la balise de fermeture de PHP, ce qui causerait des effets non voulus car PHP commencera à afficher la sortie, ce qui n’est souvent pas ce qui est désiré.”
Ainsi, si tu ne veux pas te prendre la tête dans ton fichier .php, oublie la balise de fin ?>.
Si par contre tu ne peux pas t’empêcher de fermer tes balises, vérifie bien que cette balise est la dernière chose écrite dans ton fichier.
Voilà, moi et mon fichier functions.php (de WordPress), on vous salue… mais sans balise de fin.