Php 哪个显示活动菜单项更快?开关&x2B;一堆回声还是一堆if语句?
还是有更好的办法 切换+一组回声:Php 哪个显示活动菜单项更快?开关&x2B;一堆回声还是一堆if语句?,php,if-statement,menu,switch-statement,Php,If Statement,Menu,Switch Statement,还是有更好的办法 切换+一组回声: switch($currentpage) { case 'index.php': $indexclass=' active'; $otherpageclass=''; break; case 'otherpage.php': $indexclass=''; $otherpageclass=' active'; break; } 然后,在li类中,我将简单地回显$indexclass作为索引,$otherpage
switch($currentpage) {
case 'index.php':
$indexclass=' active';
$otherpageclass='';
break;
case 'otherpage.php':
$indexclass='';
$otherpageclass=' active';
break;
}
然后,在li类中,我将简单地回显$indexclass作为索引,$otherpageclass作为其他页面
另一个选项是只设置$currentpage变量并执行以下操作:
<li class="<?php if($currentpage='index.php'){echo ' active';}?>">whatever</li>
<li class="<?php if($currentpage='otherpage.php'){echo ' active';}?>">whatever</li>
我认为速度应该与这个决定无关,因为您最多只谈论微观优化
做最有利于代码可读性和可维护性的事情。在我看来,我倾向于更倾向于使用switch语句的方法,因为对我来说,这在显示逻辑和实际显示之间提供了一个更清晰的分离。我认为速度应该与这个决定无关,因为你最多谈论的是微优化
做最有利于代码可读性和可维护性的事情。在我看来,我倾向于更倾向于使用switch语句的方法,因为对我来说,这在显示逻辑和实际显示之间提供了更清晰的分离。我会选择一种性能更低的解决方案:对象。我将创建一个类,以便能够通过以下方式定义菜单:
$menu = new Menu($currentpage);
$menu->addItem('index.php', 'Home');
$menu->addItem('otherpage.php', 'Other Page');
echo $menu->html();
确切的代码应该不难理解:一个带有项目的私有数组和一个封装渲染的html()方法。我会选择一个性能更低的解决方案:对象。我将创建一个类,以便能够通过以下方式定义菜单:
$menu = new Menu($currentpage);
$menu->addItem('index.php', 'Home');
$menu->addItem('otherpage.php', 'Other Page');
echo $menu->html();
确切的代码应该不难理解:一个带有项目的私有数组和一个html()方法来封装渲染。您可能需要1000万个菜单项才能注意到性能差异。您可以自己对其进行基准测试。。。但对于30个左右的菜单项,我看不出你节省的时间超过几微秒。此外,如果您所做的只是根据所处的页面更改css类,那么您可能希望在客户端使用Javascript来完成此操作您刚刚花了比在CPU周期上节省更多的时间来编写此问题,即使站点运行了一个世纪。请考虑可读性,而不要考虑性能,早期优化是万恶之源。LOL@Sammitch-抱歉这个愚蠢的问题。我还在学习,每次我回到我已经写了3个月,6个月的代码,12个月前,我总是发现我本可以做得更好的事情——尽量减少这一点,也许是看得太近了一点。你可能需要1000万个菜单项才能注意到性能差异。你可以自己进行基准测试。。。但对于30个左右的菜单项,我看不出你节省的时间超过几微秒。此外,如果您所做的只是根据所处的页面更改css类,那么您可能希望在客户端使用Javascript来完成此操作您刚刚花了比在CPU周期上节省更多的时间来编写此问题,即使站点运行了一个世纪。请考虑可读性,而不要考虑性能,早期优化是万恶之源。LOL@Sammitch-抱歉这个愚蠢的问题。我还在学习,每次我回到我3个月、6个月、12个月前写的代码中,我总是发现我本可以做得更好的事情——尽量减少这一点,也许是看得太近了一点。