0

当前页面正在从查询字符串中获取变量项和代码,因此根据我的代码,它应该进入前三个条件中的任何一个......但它进入最后一个 else 条件......同时回显值 $a 和 $我,我分别得到 2 和 A-1-1。

$a=$_GET['code'];
$i=$_GET['item'];
if($a==1 && $i!='')
{
  header("location:http//:www.abc.com");
}
else if($a==2 && $i!='')
{
  header("location:http://www.xyz.com");
}
else if($a==3  && $i!='')
{
 header("location:http://www.xpqr.com");
}
else if($a==1)
{
  header("location: http://www.a1bc.com");
}
else if($a==2)
{
  header("location:http://www.x1yz.com");
}
else if($a==3)
{
  header("location:http://www.x1pqr.com");
}
else
{
   echo "ERROR";
}

有人可以帮我找到为什么 if else 没有按预期方式工作的问题。

4

5 回答 5

1

在你写的条件下

if($a=1 && $i!='')  // "=" is assignment operator 

它应该BT

if($a==1 && $i!='')
于 2013-08-14T06:59:19.590 回答
0

您正在使用赋值运算符而不是条件运算符。对于上面的代码,a 的值总是1因为下面的代码行:

if($a=1 && $i!='')

=是赋值运算符,其中 as==是条件运算符。

==在所有 if 条件下使用。

希望这会有所帮助。

于 2013-08-14T07:03:27.027 回答
0

==在所有 if 条件下使用。还有你的标题代码

header("location: http:www.abc.com");

应该是这样的

header("location: http://www.abc.com"); // you are missing '//' in every header
于 2013-08-14T07:04:03.350 回答
0

你需要使用相等运算符:== double equal

if($a==1 && $i!='')

单等于是赋值运算符。

于 2013-08-14T06:59:15.813 回答
0
               $a=$_GET['code'];
               $i=$_GET['item'];
               if($a==1 && !$i)
                {
                 header("location:http//:www.abc.com");
                }
                else if($a==2 && !$i)
                 {
                    header("location:http://www.xyz.com");
                 }
                 else if($a==3  && !$i)
                 {
                  header("location:http://www.xpqr.com");
                 }
                 else if($a==1)
                  {
                 header("location: http://www.a1bc.com");
                  }
                  else if($a==2)
                  {
                   header("location:http://www.x1yz.com");
                   }
                  else if($a==3)
                  {
                   header("location:http://www.x1pqr.com");
                   }
                    else
                  {
                 echo "ERROR";
                     }

使用 !$i 它设置为 false。

于 2013-08-14T07:22:28.047 回答