我正在尝试确定使用 PHP 分配选项卡式菜单项的类的最佳方式。
到目前为止,我在这里和其他地方所读到的关于这个主题的内容似乎只能确定非常简单的案例。当您在其页面上时,我需要为选项卡设置一个活动类,并且我还需要为无法访问该功能的帐户上的选项卡设置一个禁用类(基于会话标志)。
最初,我只是回应了这样的一切:
<?php
echo '<li class="some-tab ';if($pageName === "somepage.php"){echo'active';}
if(!$_SESSION['some_flag']){echo'disabled';
echo'"><a href="">Link</a>';}
?>
但随后代码耻辱设置,我正试图真正开始使用 PHP 像模板引擎。也就是说,我不想使用实际的模板引擎。
对于 HTML 的任何其他部分,跳入和跳出 PHP 很容易且相对优雅,但在让类工作时,感觉很笨拙。它完全污染了标记,并在我的模板中留下了太多的逻辑。
像这样:
<li class="some-tab <? if($pageName === "somepage.php"){echo'active';} ?></li>
不可怕,但添加更多规则,它变得一团糟。
我的第一个想法是创建一个关联数组并回显它的内容:
<? if(some condition){
$class = array("sometab" => "sometab active disabled");
}
else{
$class = array("sometab" => "sometab");
}
?>
<li class="<?= $class['sometab'] ?>"> </li>
但我觉得它可能太聪明了。
我想避免将信息存储在正文类中或某些人建议的 Javascript cookie 中,因为我不只是获取 URL。
有没有我错过的选项?
类数组是否合适?我没有经验知道这是否是一个可怕的想法。