2012-11-19 122 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'; 
} 

?> 

試試這個