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