2011-01-10 10 views
18

¿Cuál es la diferencia entrePhp: ¿cuál es la diferencia entre while ... endwhile; y mientras {// cosas aquí}

while (expression): 

// do stuff 

endwhile; 

y

while { 

} 
+5

La sintaxis alternativa puede dificultar la edición debido a que no permite emparejar llaves en IDEs. – webbiedave

+0

¿Puedes explicar un poco más? – redconservatory

+0

explicación adicional: los editores de texto de programación generalmente resaltarán las llaves de sintaxis estándar '{...}' cuando el cursor esté sobre cualquiera de las llaves, por lo que es fácil identificar los bloques de instrucciones y controlar el flujo. La sintaxis alternativa puede ser exasperante si hay muchas estructuras de control anidadas e indentaciones deficientes. – agtb

Respuesta

31

No hay diferencia funcional.

En el uso práctico encuentro que:

while (expression): 
// do stuff 
endwhile; 

más comprensible para los diseñadores cuando está incrustando código PHP dentro del HTML. IE:

<? while ($cssClass = array_pop($array)): ?> 
    <li class="<?=$cssClass?>"> 
<? endwhile; ?> 

Considerando lo siguiente:

while { 

} 

se lee más fácilmente dentro de un bloque de código php.

+0

Incluso puede agregar html puro entre los {} corchetes como 'mientras {)> su excelente html

6

No hay ninguna diferencia, todo se reduce a la preferencia personal.

2

No hay diferencia real al escribir el código.

Puede haber una diferencia en los niveles de conveniencia en circunstancias muy especiales. Por ejemplo, supongamos que está escribiendo un motor de plantillas que convierte el código de la plantilla en código PHP nativo que luego se almacena en caché y se ejecuta directamente para la velocidad.

En este caso, el hecho de que while ... endwhile; evite el uso de llaves puede permitirle simplificar su algoritmo de análisis sintáctico si, por ejemplo, reconoce las variables que deberían sustituirse por una sintaxis como {$var}, que también utiliza llaves.

Por supuesto, este es un beneficio bastante pequeño en una situación realmente extraordinaria, pero toma lo que puede. :)

2

La diferencia es insignificante cuando el código se ejecuta realmente, pero cuando se codifica encuentro que escribir los corchetes es (1): más rápido, (2): más convencional, y (3): permite menos posibilidades de error (endwhle anyone?).

Como beneficio adicional, el editor que uso formatea automáticamente los bucles while (con corchetes, de forma predeterminada) y más adelante, si algo está desactivado, la función integrada de ajuste de corchetes lo atrapará.

Cuestiones relacionadas