减少 if/else 个语句
Reduce if/else statements
我写了一个非常简单的 if 语句来检查 url。它工作得很好,但是有什么办法可以 trim 降低它吗?
<?php if ($_SERVER['REQUEST_URI'] === "/jim.html") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">Inman jim <i class="fa fa-angle-down"></i></a>
<?php } elseif ($_SERVER['REQUEST_URI'] === "/bob.html") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">bob <i class="fa fa-angle-down"></i></a>
<?php } elseif ($_SERVER['REQUEST_URI'] === "/dereck.html") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">dereck <i class="fa fa-angle-down"></i></a>
<?php } elseif ($_SERVER['REQUEST_URI'] === "/maxamilamatronicus") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">maxamilamatronicus <i class="fa fa-angle-down"></i></a>
就是简单的在下拉菜单的drop处显示正确的标题。
谢谢!
使用Switch
更具可读性和易于维护:
switch ($_SERVER['REQUEST_URI']) {
case "/jim.html" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">Inman jim <i class="fa fa-angle-down"></i></a><?php
break;
case "/bob.html" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">bob <i class="fa fa-angle-down"></i></a><?php
break;
case "/dereck.html" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">dereck <i class="fa fa-angle-down"></i></a><?php
break;
case "/maxamilamatronicus" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">maxamilamatronicus <i class="fa fa-angle-down"></i></a><?php
break;
}
您可以在 PHP 中使用 switch case。哪个更有效率。看这里的例子:http://www.w3schools.com/php/php_switch.asp
也尽量将下面的物品尽可能多地放在 PHP 之外。从而提高可读性和效率。
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown">
因此更好的解决方案是:
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown"
<?php switch ($_SERVER['REQUEST_URI']) {
case "/jim.html" : ?>
href="#">Inman jim <?php
break;
case "/bob.html" : ?>
href="#">bob <?php
break;
case "/dereck.html" : ?>
href="#">dereck <?php
break;
case "/maxamilamatronicus" : ?>
href="#">maxamilamatronicus <?php
break;
}?>
<i class="fa fa-angle-down"></i></a>
这是一个更简单的代码,它给出了相同的结果:
<?php
$menus = [
'/jim.html' => [ 'title' => 'Inman jim', 'href' => '#'],
'/bob.html' => [ 'title' => 'bob', 'href' => '#'],
'/dereck.html' => [ 'title' => 'dereck', 'href' => '#'],
'/maxamilamatronicus' => [ 'title' => 'maxamilamatronicus', 'href' => '#']
];
$menu = ['title' => 'Unknown', 'href' => '#'];
if(isset($menus[$_SERVER['REQUEST_URI']]))
$menu = $menus[$_SERVER['REQUEST_URI']];
?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="<?=$menu['href']?>">
<?= $menu['title'] ?>
<i class="fa fa-angle-down"></i>
</a>
请注意,如果 $_SERVER['REQUEST_URI']
不等于 $menus
数组中的任何键,文本将为 "Unknown"
。
我写了一个非常简单的 if 语句来检查 url。它工作得很好,但是有什么办法可以 trim 降低它吗?
<?php if ($_SERVER['REQUEST_URI'] === "/jim.html") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">Inman jim <i class="fa fa-angle-down"></i></a>
<?php } elseif ($_SERVER['REQUEST_URI'] === "/bob.html") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">bob <i class="fa fa-angle-down"></i></a>
<?php } elseif ($_SERVER['REQUEST_URI'] === "/dereck.html") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">dereck <i class="fa fa-angle-down"></i></a>
<?php } elseif ($_SERVER['REQUEST_URI'] === "/maxamilamatronicus") { ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">maxamilamatronicus <i class="fa fa-angle-down"></i></a>
就是简单的在下拉菜单的drop处显示正确的标题。
谢谢!
使用Switch
更具可读性和易于维护:
switch ($_SERVER['REQUEST_URI']) {
case "/jim.html" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">Inman jim <i class="fa fa-angle-down"></i></a><?php
break;
case "/bob.html" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">bob <i class="fa fa-angle-down"></i></a><?php
break;
case "/dereck.html" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">dereck <i class="fa fa-angle-down"></i></a><?php
break;
case "/maxamilamatronicus" : ?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="#">maxamilamatronicus <i class="fa fa-angle-down"></i></a><?php
break;
}
您可以在 PHP 中使用 switch case。哪个更有效率。看这里的例子:http://www.w3schools.com/php/php_switch.asp
也尽量将下面的物品尽可能多地放在 PHP 之外。从而提高可读性和效率。
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown">
因此更好的解决方案是:
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown"
<?php switch ($_SERVER['REQUEST_URI']) {
case "/jim.html" : ?>
href="#">Inman jim <?php
break;
case "/bob.html" : ?>
href="#">bob <?php
break;
case "/dereck.html" : ?>
href="#">dereck <?php
break;
case "/maxamilamatronicus" : ?>
href="#">maxamilamatronicus <?php
break;
}?>
<i class="fa fa-angle-down"></i></a>
这是一个更简单的代码,它给出了相同的结果:
<?php
$menus = [
'/jim.html' => [ 'title' => 'Inman jim', 'href' => '#'],
'/bob.html' => [ 'title' => 'bob', 'href' => '#'],
'/dereck.html' => [ 'title' => 'dereck', 'href' => '#'],
'/maxamilamatronicus' => [ 'title' => 'maxamilamatronicus', 'href' => '#']
];
$menu = ['title' => 'Unknown', 'href' => '#'];
if(isset($menus[$_SERVER['REQUEST_URI']]))
$menu = $menus[$_SERVER['REQUEST_URI']];
?>
<a class="btn btn-primary dropdown-toggle btn-gallery" data-toggle="dropdown" href="<?=$menu['href']?>">
<?= $menu['title'] ?>
<i class="fa fa-angle-down"></i>
</a>
请注意,如果 $_SERVER['REQUEST_URI']
不等于 $menus
数组中的任何键,文本将为 "Unknown"
。