2010-07-27 26 views

Respuesta

11

La primera se llama short-open etiquetas y la segunda es segura para abrir y cerrar etiquetas. Puede activar/desactivar las etiquetas de apertura corta en php.ini usando la configuración short_open_tag.

Las etiquetas cortas deben ser evitados, echar un vistazo a:

PHP Short Open Tag: Convenient Shortcut or Short Changing Security?

+0

"¡Todo mi código PHP fue enviado silenciosamente directamente al navegador, completamente ignorado por PHP! No se ejecuta, no hay visitas, no hay errores". Por supuesto no. Todo el código dentro de esas etiquetas cortas es ignorado por PHP. – NullUserException

+0

@NullUserException: porque tiene etiquetas cortas deshabilitadas de php.ini :) – Sarfraz

+0

Usar etiquetas cortas es bastante bueno siempre que tenga control sobre el entorno en el que se utilizan. Las etiquetas cortas solo se desalientan si necesita distribuirlas. el software, porque entonces ya no posee ese control. –

6

Los servidores deben estar configurados también utilizar <?, por lo que se considera la mejor práctica de utilizar <?php por razones de portabilidad.

Desde el manual (http://www.php.net/manual/en/language.basic-syntax.phpmode.php):

Hay cuatro pares diferentes de etiquetas de apertura y cierre que puede ser utilizado en PHP. Dos de ellos, y están siempre disponibles. Los otros dos son etiquetas cortas y etiquetas de estilo ASP, y se pueden activar y desactivar desde el archivo de configuración php.ini . Como tal, mientras que algunas personas encuentran etiquetas cortas y etiquetas de estilo ASP convenientes, son menos portátiles, y generalmente no se recomiendan .

-1

No hay lenguaje en cuanto a la diferencia, pero muchas tiendas prefieren el uso de <?php debido a la sencilla etiqueta <? apertura se puede encontrar en archivos XML, que pueden conducir a confusión para el intérprete.

Editar: pensé que esto era todavía un problema: http://terrychay.com/article/short_open_tag.shtml

+0

Eso es totalmente falso. – NullUserException

+0

Ya no es el caso (como se describe aquí: http://terrychay.com/article/short_open_tag.shtml) – Gabe

+1

Del manual: "Nota: También tenga en cuenta que si está incrustando PHP dentro de XML o XHTML, necesitará use las etiquetas para seguir cumpliendo con los estándares ". –

1

Yo personalmente nunca he encontrado con este problema, pero el soporte para <? ?> es irregular cuando se mueve a diferentes servidores. Prefiero quedarme con <?php ?> para mayor claridad y consistencia.

3

<?php siempre se puede utilizar. <? solo se puede utilizar si la directiva short_open_tag está activada.

short_open_tag le dice a PHP si la forma corta (<? ?>) de la etiqueta de apertura de PHP se debe permitir.Si desea utilizar PHP en combinación con XML, puede deshabilitar esta opción para usar el <?xml ?> en línea. De lo contrario, puede imprimirlo con PHP, por ejemplo: <?php echo '<?xml version="1.0"?>'; ?>. Además, si está deshabilitado, debe usar la forma larga de la etiqueta PHP open (<?php ?>).

Nota: Esta directiva afecta también la <?=, que es idéntica a <? echo. El uso de este atajo requiere que short_open_tag esté activado.

- Description of core php.ini directives

Como otros han mencionado, esta directiva es a menudo apagado por razones de portabilidad Yo prefiero usar <?php ?>. Si esto no es un problema, no debería haber mucha diferencia, aparte de eso, si la directiva está activada, también puede usar la función abreviada <?=.

1

El uso de etiquetas cortas <? ?> debe evitarse al desarrollar aplicaciones o bibliotecas destinadas a la redistribución o la implementación en servidores PHP que no están bajo su control, porque las etiquetas cortas pueden no ser compatibles con el servidor de destino. Para el código portátil redistribuible, asegúrese de no utilizar etiquetas cortas.

Y también tenga en cuenta que si está incrustando PHP dentro de XML o XHTML deberá usar las etiquetas <?php ?> para seguir cumpliendo con los estándares.

+0

"... etiquetas para cumplir con los estándares. " Eso no es exactamente cierto. El cumplimiento de los estándares XHTML del marcado generado es el mismo, independientemente de las etiquetas php utilizadas. – NullUserException

1

Use siempre <?php ?> porque <? ?>:

  • no va a funcionar en las próximas versiones de PHP
  • podían ser mezclados con las definiciones XML. (XML siempre comienza con <?xml ...)
  • no está habilitado en muchos sitios de alojamiento compartido.
+1

RE:" no funcionará en las próximas versiones PHP "- ¿Tiene documentación? de esto? –

0

etiquetas cortas <? ?>, solo funcionan en versiones anteriores de php.

+0

No es cierto en absoluto. Ver comentarios arriba. –

Cuestiones relacionadas