php - etiquetas - <?=
PHP echo vs PHP short tags (7)
Además de todo el debate semirreligioso sobre si utilizar o no las etiquetas cortas es una buena idea y si se debe considerar obsoleta o no, la pregunta original fue qué tan seguras o inseguras son para usar.
En pocas palabras, si utiliza etiquetas cortas en un servidor que no las admite, partes de su código PHP pueden quedar expuestas, lo que puede considerarse una vulnerabilidad de seguridad.
¿Son iguales en seguridad? Me informaron que usando
<?=$function_here?>
era menos seguro y ralentiza los tiempos de carga de la página. Estoy estrictamente predispuesto a usar echo.
¿Cuáles son las ventajas / desventajas?
Debería usar </? = Y pedirle a su administrador de sistema / host que active las etiquetas short_open_tags, no tiene ningún inconveniente para ser desactivado, tampoco tiene desaceleración, el analizador busca el </? de la misma manera que busca </? php dentro del índice, búsqueda de binnary (tal vez
Además, ya en PHP 5.5 </? = Se activará de manera predeterminada y en el largo plazo </? = Se preferirá, mientras que </? Php echo semi deprecated.
Si aún no surte ... Un poco de Google ayuda mucho = D
Eco generalmente es mejor usar porque ...
- Es compatible con un buen estilo de programación.
- No se puede desactivar en php.ini (las etiquetas cortas pueden ser)
-
Las etiquetas cortas se eliminarán en PHP 6)
Pero, generalmente son lo mismo. Ver también:
Entonces, ¿por qué no simplemente eliminan la opción de desactivar la etiqueta de abrir corta y dejarla activada de manera predeterminada?
Este es un movimiento MUY peligroso de PHP. La razón es que si coloca el código existente que tiene etiquetas cortas en un servidor PHP6 y alguien ve esa página, obtendrá el código sin procesar descargado a su navegador que puede ver. Esto podría matar seriamente a PHP.
Solo para agregar otra fuente de PSR: http://www.php-fig.org/psr/psr-1/
El código PHP DEBE usar las etiquetas largas o las etiquetas de eco corto; NO DEBE usar las otras variaciones de etiquetas.
especificando:
<?php ?> and <?= ?>
http://php.net/manual/en/language.basic-syntax.phpmode.php declara:
A partir de PHP 5.4, la etiqueta corta de eco siempre se reconoce y es válida, independientemente de la configuración
short_open_tag
.
short_open_tag
Desactivado o Activado ya no importa.
Ahora puede, sin preocupación, poner etiquetas como esta en sus plantillas:
<?= (($test) ? "val1" : "val2") ?>
Ahora es oficial, la "etiqueta de eco corta" es algo muy diferente a la "etiqueta corta".
<?
y <?=
se llaman etiquetas cortas abiertas, y no siempre están habilitadas (vea la directiva short_open_tag
) con PHP 5.3 o inferior (pero desde PHP 5.4.0, <?=
siempre está disponible).
En realidad, en el archivo php.ini-production provisto con PHP 5.3.0, están deshabilitados por defecto:
$ grep ''short_open'' php.ini-production
; short_open_tag
short_open_tag = Off
Por lo tanto, usarlos en una aplicación que desee distribuir podría no ser una buena idea: su aplicación no funcionará si no están habilitados.
<?php
, por otro lado, no se puede desactivar; por lo tanto, es más seguro usar este, incluso si es más largo para escribir.
Excepto por el hecho de que las etiquetas abiertas cortas no están necesariamente habilitadas, no creo que haya mucha diferencia.