如果或Switch获取参数PHP


If or Switch for getting parameter PHP

我有很多php文件。

要访问每个php,我使用的是参数。

示例:index.php?route=changepasswordindex.php?route=aboutus

我有一个route.php将参数链接到正确的文件

最好使用

If-Else statement

1
2
3
4
5
6
$route = $_GET['route'];
if ($route==changepassword) {
   //statement
} else if ($route==aboutus) {
   //statement
}

使用switch-case的方法?

1
2
3
4
5
6
7
8
9
$route = $_GET['route'];
switch ($route) {
case"changepassword" :
   //statement
   break;
case"aboutus" :
   //statement
   break;
}

这只是2个文件,我有10+个文件,最好用什么?


您应该在任何地方使用阵列映射:

1
2
3
4
$map = array(
   "changepassword" =>"includes/changepw.php",
   "aboutus" =>"templ/aboutus.php",
);

在这种简单的情况下(您没有详细介绍您的//statements),您可以使用它们作为:

1
incude( $map[$_GET["route"]] );

通常,您可以将它们映射到类、回调或匿名函数上。

但最后,地图更简洁,更易于维护。


对于这类情况,在性能之前,如果任何一种解决方案都需要获得任何性能,那么就应该先了解代码的清晰度。

我肯定会和switch-case一起去。

看另一条有相似答案的线索。