我在使用foreach循环时使用方括号。endforeach有什么用?
主要是为了在循环创建HTML时可以使开始和结束语句更清晰:
<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>
希望我的示例足以说明一旦您具有多层嵌套循环,并且所有PHP打开/关闭标签和所包含的HTML都会使缩进消失(也许您必须以某种方式缩进HTML以获取HTML页面),备用语法(endforeach)形式可使您的大脑更容易解析。使用常规样式时,关闭}可以自己保留,从而很难说出他们实际关闭的内容。
endforeach
}