Certaines personnes jurent en fermant leurs fichiers PHP avec ?>
, certains disent qu'il est plus optimisé pour le laisser de côté.
Je sais qu'il n'est pas essentiel de l'avoir là-bas, je me demande simplement quels sont les avantages et les inconvénients de faire cela, et quelles sont les meilleures pratiques.
php
code-formatting
Steve Robbins
la source
la source
If a file is pure PHP code, it is preferable to omit the PHP closing tag at the end of the file. This prevents accidental whitespace or new lines being added after the PHP closing tag, which may cause unwanted effects because PHP will start output buffering when there is no intention from the programmer to send any output at that point in the script.
Réponses:
Ce n'est pas tant une question de performances - l'analyse de la fin
?>
est triviale et ne fera aucune différence notable, sauf si vous incluez un million de fichiers par seconde.IIRC, php.net recommande de NE PAS ajouter le
?>
, et les raisons vont quelque chose comme ceci:?>
, qui seront envoyés au client, ce qui à son tour peut conduire à des erreurs obscures "en-têtes déjà envoyés" (cela se produit lorsqu'un fichier inclus contient des espaces blancs, et vous essayez de définir un en-tête après y compris ce fichier)la source
Non, ils ont tort.
?>
est facultatif en PHP à la fin d'un fichier. Et vous trouverez une bonne raison à cela. Le plus important est qu'un espace vide à la fin d'un fichier ne vous empêchera pas d'envoyer des en-têtes. C'est un bug difficile à repérer car vous pouvez le trouver dans n'importe quel fichier n'importe où.La façon habituelle de faire est de mettre une balise de fermeture lorsque PHP est mélangé avec HTML et de ne pas le mettre pour des fichiers PHP purs. C'est même une norme de codage du framework ZEND et bien d'autres.
Optimisé signifie que le code s'exécute plus rapidement. C'est facile de leur prouver le contraire. Profilez le code et découvrez qu'ils vous disent des conneries.
la source
Je pense qu'il est recommandé aux débutants d'éviter de l'ajouter afin qu'ils ne provoquent pas l'envoi accidentel de caractères de nouvelle ligne supplémentaires. Puisqu'il n'est pas essentiel de l'avoir comme vous l'avez mentionné, je pense que le raisonnement général est qu'il vaut mieux le laisser pour éviter les erreurs.
Je ne pense pas qu'il y ait une quelconque "optimisation" en cause.
Je vous pointerais ici: /programming/4410704/php-closing-tag et ici: /programming/3219383/why-do-some-scripts-omit-the -closing-php-tag
la source
?>
dans des fichiers contenant du PHP pur.