20-07-2018, 04:26 PM
Salut,
Oui, et elles sont justifiées:
- <? est une "processing instruction" de HTML, donc, utiliser ces balises courtes peut interférer avec d'autres interpréteurs, ou avec l'insertion de processing instructions XML (ie: si tu veux faire un SVG, tu ne pas; sauf à faire un echo '<?xml...'; mais l'IDE peut alors être perdu)
- Si une balise de fermeture est présente, alors on est obligé de laisser traîner des espaces/sauts de ligne en fin de fichier (les fichiers texte par exemple doivent se finir par un "\n" pour que certains outils en ligne de commande de Linux les considèrent comme du texte, s'il n'y a pas ce \n final, ils peuvent sauter la dernière ligne du fichier, donc, impossible de finir le fichier par un ?> tout seul vu qu'un \n doit forcément le suivre). Or, ce saut de ligne n'étant pas dans une balise PHP, le serveur web (Apache) risque de le retourner directement. Cela peut générer des soucis quand vient le temps d'envoyer un header HTTP (ie: le parser PHP s'arrête sur ?>, Apache envoie au navigateur le saut de ligne qui est après, et si un appel à header() est ensuite fait, alors PHP plantera car le corps de la réponse est déjà parti)
Oui, et elles sont justifiées:
- <? est une "processing instruction" de HTML, donc, utiliser ces balises courtes peut interférer avec d'autres interpréteurs, ou avec l'insertion de processing instructions XML (ie: si tu veux faire un SVG, tu ne pas; sauf à faire un echo '<?xml...'; mais l'IDE peut alors être perdu)
- Si une balise de fermeture est présente, alors on est obligé de laisser traîner des espaces/sauts de ligne en fin de fichier (les fichiers texte par exemple doivent se finir par un "\n" pour que certains outils en ligne de commande de Linux les considèrent comme du texte, s'il n'y a pas ce \n final, ils peuvent sauter la dernière ligne du fichier, donc, impossible de finir le fichier par un ?> tout seul vu qu'un \n doit forcément le suivre). Or, ce saut de ligne n'étant pas dans une balise PHP, le serveur web (Apache) risque de le retourner directement. Cela peut générer des soucis quand vient le temps d'envoyer un header HTTP (ie: le parser PHP s'arrête sur ?>, Apache envoie au navigateur le saut de ligne qui est après, et si un appel à header() est ensuite fait, alors PHP plantera car le corps de la réponse est déjà parti)