2010-04-18 12 views
7

En general, cuando quiero mostrar algún código HTML para ser renderizado, uso una etiqueta 'cerrar PHP', escribo el HTML , luego abre el PHP nuevamente. por ejemplo'echo' o abandono de 'programación' escriba HTML y luego vuelva a iniciar el código PHP

<?php 
// some php code 
?> 
<p>HTML that I want displayed</p> 
<?php 
// more php code 
?> 

Pero he visto un montón de gente que sólo tiene que utilizar eco en su lugar, por lo que habría hecho lo anterior algo así como

<?php 
// some php code 
echo("<p>HTML that I want displayed</p>"); 
// more php code 
?> 

Es su cualquier impacto en el rendimiento de abandonar y volver en igual ¿ese? Supongo que no, ya que el motor de PHP tendría que procesar todo el archivo de cualquier manera.

¿Qué pasa cuando se utiliza la función de eco en la forma en que la dosis no se parece a una función, por ejemplo

echo "<p>HTML that I want displayed</p>" 

Yo esperaría que esto es puramente una cuestión de gustos, pero me gustaría saber si Me estaba perdiendo algo. Personalmente, me parece preferible la primera opción (abandonar PHP y luego volver) ya que ayuda a establecer una distinción clara entre PHP y HTML, y también le permite utilizar el resaltado de código y sugerencias para su HTML, que siempre es útil.

Respuesta

6

El primer tipo es preferible, exactamente por las razones que ha mencionado.

En realidad, hacer eco de trozos enteros de html se considera una mala práctica.

+0

Está bien hacer eco de HTML siempre que sea muy corto como un enlace simple o tan ... – selfawaresoup

+0

Echoing a simple link significaría que tiene que tratar con '"escaping. Echo' ' . $caption . ' '; Si usa "para los delimitadores, entonces tiene que escapar en los atributos en lugar de las variables. Es feo –

+0

Uso el eco para la codificación en línea (). Si desea crear sitios dinámicos más grandes, utilice la primera opción, – Neale

1

No, no hay aumento de rendimiento que sería visible.

A veces es simplemente más fácil generar contenido usando echo (por ejemplo, cuando está dentro de un tiempo o para un bucle) que cerrar la etiqueta php.

0

Creo que hay un preprocesador que convierte el mismo formulario en el segundo. Eso es lo que sucede en ASP.NET, de todos modos. Y tanto en ASP.NET como en ASP clásico, los bucles en realidad pueden extenderse a través de regiones HTML sin formato.

+0

, ¿a qué se refiere? El solo es 'procesamiento' en PHP ... es posible que pueda ejecutar una herramienta y optimizar un punto, pero se acaba de interpretar cada vez que se ejecuta. – thecoshman

+0

Para obtener cualquier tipo de rendimiento decente, todo se va a analizar en un árbol de sintaxis abstracta. Interpretar el texto directamente es lastimosamente lento. Para muchos de estos sistemas de plantillas, el árbol de análisis sintáctico para ambas formas es el mismo (un nodo que representa un literal de cadena y un comando de salida). –

0

No hay diferencia de rendimiento en absoluto.

Solo el estilo que produce el código más legible. Dependiendo de la situación real que pueda ser cualquiera de los dos.

Pero mezclar HTML y PHP debe evitarse donde sea posible de todos modos. Esto se puede lograr mediante el uso de un sistema de plantillas para sus puntos de vista.

+2

PHP es un sistema de plantillas. –

+0

Exactamente, no es necesario implementar otra capa encima para plantillas. –

Cuestiones relacionadas