【发布时间】:2014-02-11 18:29:31
【问题描述】:
我只是想弄清楚从长远来看哪个会更好,以及这两种方案之间是否存在性能差异。
我们正在维护一个由我们创建的网站,我们正在尝试向某些页面的侧边栏动态添加一些内容,并尝试确定是否有理由使用 foreach 循环或多个 if/else 语句。
我们最终会得到比此处显示的 6 个页面多很多的页面,因此可能会考虑性能问题。
foreach 循环如下所示:
$rb_enabled = false;
$RURLs = array(
'/cambridge.php' => 'cambridge',
'/milton.php' => 'milton',
'/kitchener_waterloo.php' => 'kw',
'/hamilton_dundas.php' => 'hd',
'/oakville.php' => 'oakville',
'/brantford.php' => 'brantford'
);
foreach( $RURLs as $rurl => $engine_location ){
if($_SERVER['REQUEST_URI'] == $ru){
$rb_url == $engine_location;
$rb_enabled == true;
}
}
if($rb_enabled === true){ //create a div with information based on engine location }
这个加载到的侧边栏 php 文件在很多页面上,其中一些需要专门为它创建的 div,其他页面根本不需要它,因此$rb_enabled。
foreach 循环比这更好或更差的原因是什么:
if($_SERVER['REQUEST_URI'] == '/cambridge.php'){ $rb_url = 'cambridge'; $rb_enabled = true; }
else if($_SERVER['REQUEST_URI'] == '/milton.php'){ $rb_url = 'milton'; $rb_enabled = true; }
else if($_SERVER['REQUEST_URI'] == '/kitchener_waterloo.php'){ $rb_url = 'kw'; $rb_enabled = true; }
else if($_SERVER['REQUEST_URI'] == '/hamilton_dundas.php'){ $rb_url = 'hd'; $rb_enabled = true; }
else if($_SERVER['REQUEST_URI'] == '/oakville.php'){ $rb_url = 'oakville'; $rb_enabled = true; }
else if($_SERVER['REQUEST_URI'] == '/brantford.php'){ $rb_url = 'brantford'; $rb_enabled = true; }
if 语句与$rb_enabled 相比有点多余,但想知道是否有任何理由使用一种方式而不是另一种方式,即使它只是“如果你是下一个有手的人,你宁愿接管哪个代码在这个项目上”,如果这是唯一的原因。
也完全接受一个新想法!
【问题讨论】:
标签: php if-statement foreach