endforeach在循环?

使用foreach循环时,我使用括号。 什么是endforeach?

这主要是因为您可以在循环中创buildHTML时使开始和结束语句更清晰:

<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> 

 <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> 

希望我的例子足以certificate一旦你有几层嵌套循环,所有的PHP开放/closures标签和HTML所包含的缩进(或者你必须缩进HTML一定的方式让你的页面的方式,你想要的), 替代语法 ( endforeach )forms可以让你的大脑更容易parsing。 用正常的风格,闭幕式可以自己留下来,很难说出他们真正closures的东西。

这是替代语法的结束语句:

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

如果你打破了PHP的话,有助于使代码更具可读性:

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

作为替代语法,你可以像这样编写foreach循环

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

这种types的语法通常在php被用作模板语言时使用

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

这只是一个不同的语法。 代替

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

你可以这样写:

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

他们的function完全一样; 这只是一个风格问题。 (我个人从来没有见过任何人使用第二种forms。)

这个怎么样?

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

我们仍然可以使用更广泛使用的括号,同时提高可读性。

使用foreach:endforeach; 不仅可以让事情变得可读,而且还可以减lessPHP文档中引入的内存负担。因此,对于大型应用程序,接收许多用户,这将是最好的解决scheme

那个怎么样?

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