我们目前使用Switch case url config帮助我们在我们的一些网址上导航,我不确定是否有更简单的方法来做但我似乎无法找到1.
<?php if (! isset($_GET['step']))
{
include('./step1.php');
} else {
$page = $_GET['step'];
switch($page)
{
case '1':
include('./step1.php');
break;
case '2':
include('./step2.php');
break;
}
}
?>
现在这个系统工作得很好但是我们遇到的唯一障碍是如果他们输入xxxxxx.php?step = 3热潮他们只是得到一个空白页面,这应该是正确的,因为它没有处理'3'的情况但我想知道的是..有没有任何PHP代码我可以添加到底部,可以告诉它除了那些2以外的任何情况将其重定向回xxxxx.php?
谢谢
丹尼尔
答案 0 :(得分:4)
使用default
案例。也就是说,将您的开关更改为以下内容:
<?php if (! isset($_GET['step']))
{
include('./step1.php');
} else {
$page = $_GET['step'];
switch($page)
{
case '1':
include('./step1.php');
break;
case '2':
include('./step2.php');
break;
default:
// Default action
break;
}
}
?>
将针对未明确指定的每个案例执行默认情况。
答案 1 :(得分:2)
所有switch
语句都允许default
个案,如果没有其他情况会触发。有点像...
switch ($foo)
{
case 1:
break;
...
default:
header("Location: someOtherUrl");
}
会奏效。但是,您可能希望Google可以使用其他更强大且可扩展的页面调度解决方案。
答案 2 :(得分:1)
如何采用不同的方法:
<?php
$currentStep = $_GET['step'];
$includePage = './step'.$currentStep.'.php'; # Assuming the pages are structured the same, i.e. stepN where N is a number
if(!file_exists($includePage) || !isset($currentStep)){ # If file doesn't exist, then set the default page
$includePage = 'default.php'; # Should reflect the desired default page for steps not matching 1 or 2
}
include($includePage);
?>