todas las etiquetas ejemplos comentarios codigo php coding-style

las - ¿Por qué algunas secuencias de comandos omiten la etiqueta PHP de cierre, ''?>''?



etiquetas php pdf (7)

  1. Muestra el espacio en blanco no deseado / página en blanco. Los encabezados HTTP no funcionan para esos espacios en blanco no deseados.
  2. La mayoría de las inyecciones de JavaScript se realizan al final del archivo. Mostrará un mensaje de error y rompe el código, el código JavaScript inyectado no se ejecuta.

Esta pregunta ya tiene una respuesta aquí:

En algunos scripts, veo que omiten escribir una etiqueta de cierre ?> Para el script. ¿Por qué es y debería hacer esto también?

(Estoy seguro de que no lo han olvidado)


Bueno, omitir la etiqueta de cierre es solo una solución para evitar espacios en blanco y otros caracteres al final del archivo. Por ejemplo, cualquier char que se agregue accidentalmente detrás de la etiqueta de cierre generará un error al tratar de modificar la información del encabezado más adelante.

Quitar la etiqueta de cierre es una especie de "buena práctica" que hace referencia a muchas pautas de codificación.


Desde PHP: separación de instrucciones

La etiqueta de cierre de un bloque de PHP al final de un archivo es opcional y, en algunos casos, omitirla es útil cuando se utiliza include() o require() , por lo que no se producirán espacios en blanco no deseados al final de los archivos. ser capaz de agregar encabezados a la respuesta más tarde. También es útil si usa buffering de salida, y no desea ver espacios en blanco adicionales no deseados al final de las partes generadas por los archivos incluidos.


Las versiones modernas de PHP establecen el indicador output_buffering en php.ini . Si el almacenamiento en búfer de salida está habilitado, puede establecer encabezados y cookies HTTP después de la salida de HTML, ya que el código devuelto no se envía al navegador de inmediato.

¿Los ejemplos siguen siendo válidos en este contexto?


Lo hacen para evitar arriesgarse a tener espacios en blanco después de la etiqueta de cierre que puede detener el funcionamiento de los encabezados.

Esto es, por supuesto, cierto para los archivos de solo PHP.


CodeIgniter Framework sugiere omitir las etiquetas de cierre para

"... puede causar resultados no deseados, errores de PHP o páginas en blanco".

Puedes leerlo here .


php.net en etiquetas PHP :

Si un archivo es puro código PHP, es preferible omitir la etiqueta de cierre de PHP al final del archivo. Esto evita espacios en blanco accidentales o nuevas líneas que se agregan después de la etiqueta de cierre de PHP, lo que puede causar efectos no deseados porque PHP iniciará el almacenamiento en búfer de salida cuando el programador no tiene intención de enviar ningún resultado en ese punto del script.