【发布时间】:2018-12-13 09:32:26
【问题描述】:
我有一个如下所示的 PHP 结构:
<?php if(isset($section->subsection)): ?>
<?php foreach ($section->subsection as $subsection) : ?>
<div class="subsection">
<h3><?= $subsection->category ?></h3>
<div class="item-list">
<?php foreach ($subsection->item as $item) : ?>
<div class="item">
<span class="item-aside"><?php echo $item->aside; ?></span>
<h4 class="item-name"><?php echo $item->name; ?></h4>
<p class="item-desc"><?php echo $item->description; ?></p>
</div>
<?php endforeach; ?>
</div>
</div>
<?php endforeach; ?>
<?php else: ?>
<div class="item-list">
<?php foreach ($section->item as $item) : ?>
<div class="item">
<span class="item-aside"><?php echo $item->aside; ?></span>
<h4 class="item-name"><?php echo $item->name; ?></h4>
<p class="item-desc"><?php echo $item->description; ?></p>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
正如您所看到的,这段代码的一部分基本上是重复的,<div class="item-list"> 中的所有内容几乎完全相同,但写在两个不同的地方。有没有更简单的方法可以按照 DRY 原则编写这个控制结构?
【问题讨论】:
标签: php html if-statement foreach dry