编辑:非常简单,弄明白。只需在没有}之前添加一个其他{},这将适用于两个ifs。
好吧,我写了这段代码,它运作正常
if($_REQUEST['pag']){
// Variável da página
$pag = $_REQUEST['pag'];
// Possíveis páginas
if($pag == "registrar"){
include "inc/register.php";
}
if ($pag == "recuperar"){
include "inc/recover.php";
}
}
但是,如果用户输入?pag=ofksaofkoasdkfkopsd
?
该页面将不存在,因此如果发生这种情况,我想要包含一个文件。 有没有办法在不使用列表或其他内容的情况下完成此操作?
答案 0 :(得分:3)
你可以通过switch
执行此操作,如果是因为
switch语句类似于同一表达式上的一系列IF语句。在许多情况下,您可能希望将相同的变量(或表达式)与许多不同的值进行比较,并根据它所等的值执行不同的代码。这正是switch语句的用途。 (manual)
switch($_REQUEST['pag']){
case "registrar":
include "inc/register.php";
break;
case :"recuperar":
include "inc/recover.php";
break;
default:
//default you want to include
break;
}
我希望您了解代码的复杂性,在您的情况下,切换案例在最差/平均情况下的复杂性较低
答案 1 :(得分:2)
尝试if
与else
一样
$pag = $_REQUEST['pag'];
// Possíveis páginas
if($pag == "registrar"){
include "inc/register.php";
}
elseif ($pag == "recuperar"){
include "inc/recover.php";
}
else{
include "inc/default.php"
}
或者你可以使用switch case来找到默认选项,如
switch($pag)
{
case "register":include "inc/register.php";
break;
case "recuperar":include "inc/recover.php";
break;
default : include "inc/default.php";
}
答案 2 :(得分:1)
使用if {} else{}
或switch
案例。
您可以使用nested if else
。
至少要关注文档 - http://php.net/manual/en/control-structures.elseif.php
答案 3 :(得分:1)
为什么不想使用数组?这真的是去恕我直言的最佳方式。添加页面更容易,您获得的代码更少...从配置文件或DB加载数组而不是在以后的体育场中进行硬编码也是微不足道的。我只看到了好处。
$pages = array( "registrar" => "inc/register.php",
"recuperar" => "inc/recover.php" );
$requestedPage = $_REQUEST["pag"];
if(array_key_exists($requestedPage, $pages)){
include $pages[$requestedPage];
}
else {
include "inc/error404.php";
}
答案 4 :(得分:0)
some使用switch命令。
switch ($_REQUEST['pag']) {
case 'registrar':
echo "some text or action";
break;
case 'xxx':
echo "some text or action";
break;
case 'xxxx':
echo "some text";
break;
default:
echo "some text";
}
答案 5 :(得分:0)
$pag = isset($_REQUEST['pag']) ? $_REQUEST['pag'] : null;
switch($pag) {
case 'registrar':
require 'inc/register.php';
break;
case 'recuperar':
require "inc/recover.php";
break;
default:
// Include your default page
}
在像C ++这样的非动态语言中,你必须使用它 if()elseif()else比较非常量值。
答案 6 :(得分:0)
if ($condition1)
{
//code
}
elseif ($condition2)
{
//code
}
elseif ($condition3)
{
//code
}
...
else
{
//this is what happens when no other condition is true
}
切换是一种更好的做法。检查@ user1752647的答案
答案 7 :(得分:0)
尝试使用elseif
和else
if($pag == "registrar"){
include "inc/register.php";
}elseif($pag == "recuperar"){
include "inc/recover.php";
}else{
... //include a file if the page doesn't exist
}
或者你可以用开关
来做switch($pag){
case "registrar":
include "inc/register.php";
break;
case "recuperar":
include "inc/recover.php";
break;
default:
... //include a file if the page doesn't exist
}
希望它会对你有所帮助。
答案 8 :(得分:0)
您也可以使用此代码
$pages = array("register", "recover");
if (in_array($_REQUEST["pag"], $pages)) {
include $_REQUEST["pag"].".php";
}
else{
include "default.php";
}