2011-07-04 121 views
8

Bien, estoy oficialmente confundido. Estoy leyendo en esta introducción MVC en php y veo este código, y agregué algunos elementos en la matriz en la parte superior para ver si realmente funciona.¿Qué es esta declaración de Colon foreach para php?

<?php 
$members = array('apple', 'oranges', 'banana'); 
    ?> 

<html> 
<h1>Members of community.com:</h1> 
<ul> 
<?php foreach ($members as $i => $member) : ?> 
<li>Member #<?php echo $i + 1; ?>: <?php echo $member; ?></li> 
<?php endforeach; ?> 
</ul> 
</html> 

Me di cuenta que hay una: en la línea de la declaración de foreach. ¿De donde viene esto? Más importante, ¿qué es? ¿Esto significa que el símbolo significa "está bien, continuaremos esta afirmación en la siguiente línea"?

Pero además de eso, este es un truco genial que aprendí. Menos etiquetas html dentro de mi php echo, supongo.

déjame saber lo que piensas, gracias!

Respuesta

7

Se trata de un "Sintaxis alternativa para las estructuras de control" ... ver http://ru2.php.net/manual/en/control-structures.alternative-syntax.php y http://www.php.net/manual/en/control-structures.foreach.php#82511.

Se utiliza principalmente en el código de vista que los diseñadores pueden estar mirando, ya que se cree que es más fácil de entender para los no programadores. Recomiendo encarecidamente no usarlo, ya que realmente no ofrece nada más que un conjunto de llaves comentado, y muchos IDE no juegan muy bien con él. Si su código alguna vez necesita ser visto por otros, es mejor codificar sin usar sintaxis alternativa.

foreach ($setOfItems as $item): 
    //do something 
endforeach; 

es mejor representado como ...

foreach ($setOfItems as $item) { 
    //do something 
} // end ($setOfItems as $item) foreach 

Después empiezan a anidar varios conjuntos de estructuras que terminan con endstructure; en lugar de un corsé, las llaves comentadas ofrecen una descripción más detallada de qué bloque se está terminando. Por supuesto, puede comentar la estructura final; sintaxis pero aún tiene el problema de que muchos IDEs no podrán hacer coincidirlos por usted.

Cuestiones relacionadas