You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含echo的PHP循环代码改为MVC式HTML与PHP分离写法?

解决方案

你的改写方向没问题,失败是因为输出PHP变量时用错了语法——你写的<?$变量?>缺少了输出所需的等号,正确的短输出标签应该是<?=$变量?>(等同于<?php echo $变量; ?>)。

以下是修正后的完整可行代码:

<?php $i = 1; $tabsuffix = strtolower($content['tabs'][0]['label']);
 foreach($content['tabs'] as $key => $tab):
 $tabid = $tab['label'] . "-" . $tabsuffix; ?>
 <li class="nav-item" role="presentation">
 <button class="nav-link <?= ($i == 1 ? "active" : "") ?> blob" id="pills-<?=$tabid?>-tab"
 data-bs-toggle="pill" data-bs-target="#pills-<?=$tabid?>" type="button" role="tab"
 aria-controls="pills-<?=$tabid?>" aria-selected="<?= $i == 1 ? "true" : "false" ?>">
  <h2 class="h4"><?=$tab["label"]?></h2>
 </button>
 </li>
 <?php $i++; endforeach; ?> 

核心修正说明:

  • 所有需要输出变量的位置,将<?$变量?>替换为<?=$变量?>,这是实现HTML与PHP分离输出的关键
  • 修复了aria-selected的逻辑:原代码中所有标签都设为true不符合组件规范,现在只有第一个激活的标签设为true,其余为false
  • 开头用<?php替代短标签<?,避免部分服务器未开启短标签支持导致代码无法运行

内容的提问来源于stack exchange,提问作者Sam Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:39:15