一尘不染

endforeach循环?

php

我在使用foreach循环时使用方括号。endforeach有什么用?


阅读 584

收藏
2020-05-29

共1个答案

一尘不染

主要是为了在循环创建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)形式可使您的大脑更容易解析。使用常规样式时,关闭}可以自己保留,从而很难说出他们实际关闭的内容。

2020-05-29