PHP - 使用 for 循环而不是 switch 语句


PHP - Using a for loop instead of a switch statement

溢出社区有史以来的第一个帖子!

目前我正在做一个项目,并开始使用PHP来动态插入页面。

在这个时间点,我有...

switch ($route) {
  case 'step1':
        include('./views/enrolment/mainstream/_step1.php');
        include('./views/partials/_footer.php') ;
        break;
    case 'step2':
        include('./views/enrolment/mainstream/_step2.php');
        include('./views/partials/_footer.php') ;
        break;
    case 'step3':
        include('./views/enrolment/mainstream/_step3.php');
        include('./views/partials/_footer.php');
        break;
    case 'step4':
        include('./views/enrolment/mainstream/_step4.php');
        include('./views/partials/_footer.php');
        break;
    case 'step5':
        include('./views/enrolment/mainstream/_step5.php');
        include('./views/partials/_footer.php');
        break;
    case 'step6':
        include('./views/enrolment/mainstream/_step6.php');
        include('./views/partials/_footer.php');
        break;
    case 'step7':
        include('./views/enrolment/mainstream/_step7.php');
        include('./views/partials/_footer.php');
        break;


这个 to 手段似乎非常长,最好通过 for 循环来实现,但是我是 PHP 的新手,完全不确定我将如何实现这个想法。

任何其他不使用for循环的sugguest也欢迎!

谢谢大家!

您可以使用 php 的 file_exists() fn 检查该文件是否存在

if(file_exists('./views/enrolment/mainstream/_'.$routes.'.php')) {
    include('./views/enrolment/mainstream/_'.$routes.'.php');
    include('./views/partials/_footer.php') ;
}

处理其他部分以满足您的需求。

也许这个简单的解决方案对您有好处:

include('./views/enrolment/mainstream/_'.$route.'.php');
include('./views/partials/_footer.php');

要大大减少您的代码:

include('./views/enrolment/mainstream/_step' . $route . '.php');
include('./views/partials/_footer.php');

为什么不使用$route作为变量来加载文件?

include("./views/enrolment/mainstream/_{$route}.php");
include('./views/partials/_footer.php') ;
就像

@praveen说的那样:

include('./views/enrolment/mainstream/_'.$routes.'.php');

但是,您正在复制:

include('./views/partials/_footer.php');

对于每个查询,为什么不在页面中将其作为静态查询?

最好检查$route

if (in_array($route, range(1, 7))){
    include('./views/enrolment/mainstream/_'.$route.'.php');
    include('./views/partials/_footer.php') ;
} else {
    //...error code
}

怎么样

$i = 1;
$steps = 7;
for($i = 1; $i <= $steps; $i++) {
  if($route === 'step' . $i) {
     include('./views/enrolment/mainstream/_step' . $i . '.php');
     include('./views/partials/_footer.php');
     break;
  }
}
for($i = 0; $i < 7; $i++){
    if($route == "step" . $i){
        include('./views/enrolment/mainstream/_step' .$i . '.php');
        include('./views/partials/_footer.php');
        break;
    }
}