所以我基本上试着这样做:?p = blabla& dep = blabla
switch($_GET['p'])
{
case 'home':
include("template/index.html");
break;
case null:
include("template/index.html");
break;
case 'roster':
include("template/roster.html");
break;
case 'about':
include("template/about.html");
break;
case 'members':
include("members/index.php");
break;
}
if(($_GET['p'] == 'about') && ($_GET['dep'] == 'hospital'))
{
include("template/hospital.html");
}
当我做blablabla时它还包括about.html和hospital.html?p = about& dep = hospital
我该如何解决这个问题?
答案 0 :(得分:0)
将if语句放在switch case中。
case 'about':
if ($_GET['dep'] == 'hospital')
include("template/hospital.html");
else
include("template/about.html");
break;
答案 1 :(得分:0)
这正是你所要求的。
首先你有你的switch语句。它看到$ _GET ['p']中有'about',所以它将包含该脚本。
之后你有你的if,这也评估为true,因此它被包括在内。
要改变这一点:
在“约”案例中添加另一个。
case 'about':
if ($_GET['dep'] == 'hospital') break;
include("template/about.html");
break;
答案 2 :(得分:0)
您的交换机在查找dep = hospital的行之前已经进行了处理,因此它甚至会在查找部门之前包含about.html。
如果您只想显示hospital.html,但只有在p = about时才将测试移到案例中。
switch($_GET['p'])
{
case 'home':
include("template/index.html");
break;
case null:
include("template/index.html");
break;
case 'roster':
include("template/roster.html");
break;
case 'about':
if(($_GET['dep'] == 'hospital')) {
include("template/hospital.html");
} else {
include("template/about.html");
}
break;
case 'members':
include("members/index.php");
break;
}