Pourquoi il ne faut pas utiliser ?>

La plupart des codes PHP ressemblent à cela:

<?php
echo "Hello";
?>

Cela marche très bien. Le problème c’est que si vous laissez des espaces après le tag fermant il seront aussi envoyé aux navigateurs. Quel est le soucis me direz vous?

#Le problème Imaginons que vous vouliez générer un fichier binaire comme par exemple une image, les espaces supplémentaires risque de corrompre le fichier.

Autres problèmes plus courant c’est dans le cadre de l’utilisation de session. Nous avons deux fichier

lib.php:

<?php
function hello() {
}
?>
PLEIN D ESPACES

index.php:

<?php
include("lib.php");
session_start();
?>

Vous allez voir ce type d’erreur: Warning: session_start(): Cannot send session cookie - headers already sent by

En effet le mécanisme de session de PHP nécessite de modifier les headers HTTP et lorsque PHP voit le premier caractère du contenu de la page il envoi les headers.

#La solution La solution est de ne pas mettre le tag fermant votre code marchera parfaitement et vous éliminés le risque de caractères parasites.