如果条件不按预期方式工作

时间:2013-08-14 06:57:27

标签: php if-statement

当前页面从查询字符串中获取变量项和代码,因此根据我的代码,它应该进入前三个条件中的任何一个...但它进入最后一个条件..同时回显值$ a和$ i,我分别获得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不能以预期的方式工作。

5 个答案:

答案 0 :(得分:1)

在你正在写的条件

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

它应该bt

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

答案 1 :(得分:0)

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

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

single equal是赋值运算符。

答案 2 :(得分:0)

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

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

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

在所有if条件中使用==

希望这会有所帮助。

答案 3 :(得分:0)

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

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

应该是这样的

header("location: http://www.abc.com"); // you are missing '//' in every header

答案 4 :(得分: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。