PHP es uno de los lenguajes de programación más utilizados en el desarrollo web. Una de las características más importantes de este lenguaje es que ofrece diferentes métodos de limitación. Echemos un vistazo breve a las etiquetas de apertura y cierre de PHP:

  • <?php ?>
  • <?= ?>
  • <? ?>
  • <% %>

Para utilizar PHP de manera más eficiente, es necesario comprender las diferencias y la importancia de estas etiquetas. En este artículo, aprenderemos cómo utilizar etiquetas PHP de forma eficaz.

¿Por qué no deberíamos utilizar etiquetas PHP cortas?

Las etiquetas PHP cortas pueden ser más útiles para facilitar y acelerar la codificación. Sin embargo, en la mayoría de los hosting y servidores está deshabilitado de forma predeterminada en la configuración de PHP.ini. En la configuración de PHP.ini para que funcionen estas etiquetas cortas short_open_tag La opción debe estar activada. Entonces, el único método que definitivamente funcionará en todos los servidores PHP es . Si está considerando implementar su PHP en un servidor que no controla, siempre puede <?php ?> Deberías utilizar el enfoque.

Etiqueta de eco PHP corta y PHP.ini

<?php echo() ?>

en PHP <?= etiqueta en la configuración de PHP short_open_tag Se puede usar independientemente de que la opción esté habilitada o no, por lo que puede usar este acceso directo de manera segura en lugar del anterior.
Si solo estás escribiendo código para ti y puedes controlar la configuración de PHP que utilizas, es posible que las etiquetas cortas te resulten más útiles. Pero recuerda que <? ?> La etiqueta puede entrar en conflicto con las declaraciones XML. también <% %> La etiqueta es en realidad de estilo ASP.

Etiquetas de cierre de PHP y posibles problemas

Cerrar un archivo PHP puro (por ejemplo, un archivo que contiene solo una definición de clase) ?> Al agregar la etiqueta, tenga cuidado de no dejar líneas en blanco. Si bien el intérprete de PHP puede "ejecutar" de forma segura un carácter de salto de línea después de la etiqueta de cierre, es posible que se envíen otros saltos de línea al navegador. Si luego estás escribiendo encabezados HTTP, las cosas pueden volverse aún más confusas.

PHPPSR-2

El estándar de codificación PSR-2 es parte de los estándares de codificación PHP PSR creados para determinar las mejores prácticas en PHP. Los estándares de codificación PSR-2 se aplican únicamente a archivos que contienen código PHP. ?> recomienda no utilizar etiquetas de cierre. El motivo principal de esta recomendación es evitar que se envíen al navegador caracteres como espacios o saltos de línea que se dejan accidentalmente después de la etiqueta de cierre. En PHP, ?> Cualquier carácter que siga a la etiqueta se considera automáticamente parte de la salida HTML. Esto puede resultar especialmente problemático al procesar encabezados HTTP.

Los caracteres innecesarios al final de un archivo PHP pueden impedir que los encabezados HTTP se procesen correctamente. En el protocolo HTTP, cualquier salida hace imposible enviar encabezados porque los encabezados deben completarse antes de enviar el contenido. Esto provoca un problema conocido como encabezados ya enviados, que puede afectar acciones como iniciar una sesión, configurar una cookie o redirigir una página.

Por lo tanto, PSR-2 recomienda no utilizar la etiqueta de cierre en archivos que contengan solo código PHP, para evitar errores tan comunes y preservar la limpieza del código. Este enfoque elimina posibles problemas que pueden ocurrir debido a espacios no deseados o caracteres de fin de línea al final del código y contribuye a una operación más estable y libre de errores de los scripts PHP.

Etiquetas PHP y compatibilidad

Al escribir aplicaciones web para versiones anteriores, cerrar ?> html con etiquetas <!doctype> Tenga cuidado de no dejar una nueva línea entre las etiquetas. Las versiones anteriores de IE pueden generar diferentes errores si encuentran espacios, incluidas nuevas líneas, antes de la declaración del tipo de documento. Este no es el caso con las versiones más nuevas de IE y otros navegadores más avanzados. (Es decir, para todos los navegadores distintos de IE).