2012-11-19 86 views
-4

当我点击y链接,它会去x.Why是什么?PHP如果其他如果不能正常工作

<a href="test.php?hello=x">x</a> 
    <a href="test.php?hello=y">y</a> 
    <?php 
    if(isset($_REQUEST['hello']) == 'x') 
    { 
    echo 'x'; 
    } 
    else if(isset($_REQUEST['hello']) == 'y'){ 
    echo 'y'; 
    } 
    else 
    { 
    echo "else"; 
    } 
+1

你真的需要刷上PHP – asprin

回答

2

isset函数返回truefalse,你是比较字符串'x''y'该返回值。

由于您使用==而不是===,因此true == 'x'将返回ture

要解决这个问题,首先需要检查变量是否已设置,然后才能进行比较。

if(isset($_REQUEST['hello']) && ($_REQUEST['hello']) === 'x')) 
3

尝试

if(isset($_REQUEST['hello']) && ($_REQUEST['hello']) == 'x') ) 
+3

第一的基础知识你应该使用'isset',然后你应该比较值:) –

+0

@ Mr.Alien yup .... aliean –

0

isset回报truefalse,在这两个例子中hello设置为东西,所以isset将返回true(这并不等同于任何xy

希望这会有所帮助。

0
 <?php 
     if(isset($_REQUEST['hello']) && $_REQUEST['hello']== 'x') 
     { 
     echo 'x'; 
     } 
     else if(isset($_REQUEST['hello']) && $_REQUEST['hello'] == 'y'){ 
     echo 'y'; 
     } 
     else 
     { 
     echo "else"; 
     } 
?> 
0

isset将检查该请求是否被设置或不返回0或1

<a href="test.php?hello=x">x</a> 
<a href="test.php?hello=y">y</a> 
<?php 
if($_REQUEST['hello'] == 'x') 
{ 
echo 'x'; 
} 
else if($_REQUEST['hello'] == 'y'){ 
echo 'y'; 
} 
else 
{ 
echo "else"; 
} 
0
<?php $myvar = $_REQUEST['hello']; 


if($myvar == 'x') 
{ 
echo 'x'; 
} 
else if($myvar == 'y') 
{ 
    echo 'y'; 
} 
else 
{ 
    echo 'else'; 
} 

?> 

试试这个