2014-10-30 195 views
-1

我有下面的代碼比較!PHP比較失敗?

function arr($part){ 
    $partt=intval($part); 

    if($partt==1){ 
     $url="x4"; 
    }if($partt==2){ 
     $url="x3"; 
    }if($partt==3){ 
     $url="x2"; 
    }if($partt==4){ 
     $url="x1"; 
    }else{ 
     // This always executes 
     echo $partt; 
     exit; 
    } 

我曾嘗試以下

arr(1) 
arr('1') 
arr("1") 
arr((1)) 

所有執行該

echo $partt; 
    exit; 

這確實回聲1但如果$部分1那麼爲什麼$url="x4";不執行,爲什麼else正在執行

+3

你必須使用'其他if' – Gautam3164 2014-10-30 09:10:55

+1

@ Gautam3164感謝您的其他正在運行!有效! – testrtq 2014-10-30 09:11:51

+1

爲什麼這麼多相同的答案! – testrtq 2014-10-30 09:16:57

回答

2

試着用else if

if($partt==1){ 

    $url="x4"; 
}else if($partt==2){ 

    $url="x3"; 
}else if($partt ==3){ 

    $url="x2"; 
}else if($partt==4){ 

    $url="x1"; 
}else{ 

    echo $partt; 
    exit; 
} 
echo $url; 
exit; 
0

的否則當$partt不等於4,因爲你需要使用else if總會執行。您的代碼應該是這樣的:

function arr($part){ 
    $partt=intval($part); 

    if($partt==1) 
    { 
     $url="x4"; 
    } 
    else if($partt==2) 
    { 
     $url="x3"; 
    } 
    else if($partt==3) 
    { 
     $url="x2"; 
    } 
    else if($partt==4) 
    { 
     $url="x1"; 
    } 
    else 
    { 
     echo $partt; 
    } 
} 

的這個更好的解決辦法是使用switch語句:

function arr($part) { 
    $partt=intval($part); 

    switch ($partt) 
    { 
     case 1: 
      $url="x4"; 
      break; 

     case 2: 
      $url="x3"; 
      break; 

     case 3: 
      $url="x2"; 
      break; 

     case 4: 
      $url="x1"; 
      break; 

     default: 
      echo $partt; 
      break; 
    } 

} 
0

展望代碼:

if($partt==4){ 

$url="x1"; 


}else{ 
// This always executes 
echo $partt; 
exit; 

} 

PHP將進入如果$ partt!= 4,則「else」塊。您應該嘗試替換所有「if」,但第一個替換爲「elseif」。

PHP文件:http://php.net/manual/fr/control-structures.elseif.php

0

如果你必須使用一個以上的elseif嘗試使用switch代替。

function arr($part){ 
    $partt = intval($part); 

    switch($partt){ 
    case 1: 
     $url = "x4"; 
     break; 

    case 2: 
     $url = "x3"; 
     break; 

    case 3: 
     $url = "x2"; 
     break; 

    case 4: 
     $url = "x1"; 
     break; 

    default: 
     echo $partt; 
     break; 
    } 
} 
0

使用elseif

function arr($part){ 
    $partt=intval($part); 

    if($partt==1){ 
     $url="x4"; 
    } 
    elseif($partt==2){ 
     $url="x3"; 
    } 
    elseif($partt==3){ 
     $url="x2"; 
    } 
    elseif($partt==4){ 
     $url="x1"; 
    } 
    else{ 
     echo $partt; 
     exit; 
     } 
    return $url; 

} 
0

嘗試使用else if。當$partt != 4

function arr($part) 
{ 
    $partt = intval($part); 

    if ($partt == 1) { 
     $url = "x4"; 
    } else if($partt == 2) { 
     $url = "x3"; 
    } else if($partt == 3) { 
     $url = "x2"; 
    } else if($partt == 4) { 
     $url = "x1"; 
    } else { 
     echo $partt; 
     exit; 
    } 
}