tag obtener loop get_the_tags get_the codex actual php loops foreach if-statement

php - obtener - endforeach en bucles?



tags wordpress codex (7)

Utilizo corchetes cuando uso los bucles foreach. ¿Para qué sirve endforeach?


¿Qué hay sobre eso?

<?php while($items = array_pop($lists)){ echo "<ul>"; foreach($items as $item){ echo "<li>$item</li>"; } echo "</ul>"; } ?>


¿Qué tal esto?

<ul> <?php while ($items = array_pop($lists)) { ?> <ul> <?php foreach ($items as $item) { ?> <li><?= $item ?></li> <?php }//foreach }//while ?>

Todavía podemos utilizar los aparatos ortopédicos más utilizados y, al mismo tiempo, aumentar la legibilidad.


Es la declaración final para la sintaxis alternativa :

foreach ($foo as $bar) : ... endforeach;

Útil para hacer que el código sea más legible si estás saliendo de PHP:

<?php foreach ($foo as $bar) : ?> <div ...> ... </div> <?php endforeach; ?>


Es principalmente para que pueda aclarar las declaraciones de inicio y final al crear bucles HTML en la entrada:

<table> <? while ($record = mysql_fetch_assoc($rs)): ?> <? if (!$record[''deleted'']): ?> <tr> <? foreach ($display_fields as $field): ?> <td><?= $record[$field] ?></td> <? endforeach; ?> <td> <select name="action" onChange="submit"> <? foreach ($actions as $action): ?> <option value="<?= $action ?>"><?= $action ?> <? endforeach; ?> </td> </tr> <? else: ?> <tr><td colspan="<?= array_count($display_fields) ?>"><i>record <?= $record[''id''] ?> has been deleted</i></td></tr> <? endif; ?> <? endwhile; ?> </table>

versus

<table> <? while ($record = mysql_fetch_assoc($rs)) { ?> <? if (!$record[''deleted'']) { ?> <tr> <? foreach ($display_fields as $field) { ?> <td><?= $record[$field] ?></td> <? } ?> <td> <select name="action" onChange="submit"> <? foreach ($actions as $action) { ?> <option value="<?= $action ?>"><?= action ?> <? } ?> </td> </tr> <? } else { ?> <tr><td colspan="<?= array_count($display_fields) ?>"><i>record <?= $record[''id''] ?> has been deleted</i></td></tr> <? } ?> <? } ?> </table>

Afortunadamente, mi ejemplo es suficiente para demostrar que una vez que tiene varias capas de bucles anidados, todas las etiquetas de apertura / cierre de PHP y el HTML contenido arrojan la sangría (y tal vez tenga que aplicar sangría al HTML de cierta manera para obtener su página de la forma que desee), la forma de sintaxis alternativa ( endforeach ) puede facilitar las cosas para su cerebro para analizar. Con el estilo normal, el cierre } se puede dejar por sí mismo y hace que sea difícil decir lo que realmente están cerrando.


Es solo una sintaxis diferente. En lugar de

foreach ($a as $v) { # ... }

Puedes escribir esto:

foreach ($a as $v): # ... endforeach;

Funcionarán exactamente igual; es solo una cuestión de estilo. (Personalmente, nunca he visto a nadie usar el segundo formulario).


Usando foreach: ... endforeach; no solo hace que las cosas sean legibles, sino que también genera menos carga para la memoria, como se introdujo en los documentos PHP. Por lo tanto, para las aplicaciones grandes, recibir muchos usuarios sería la mejor solución.


como una sintaxis alternativa puede escribir bucles foreach como tal

foreach($arr as $item): //do stuff endforeach;

Este tipo de sintaxis se usa normalmente cuando php se usa como lenguaje de plantillas como tal

<?php foreach($arr as $item):?> <!--do stuff --> <?php endforeach; ?>