PHP比较失败?

时间:2014-10-30 09:08:27

标签: php compare

我有以下代码比较!

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但是如果$ part是1那么为什么$url="x4";没有执行以及为什么else正在执行

6 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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;
    }

}

答案 2 :(得分:0)

期待您的代码:

if($partt==4){

$url="x1";


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

}

PHP将进入" else"阻止if $ partt!= 4.你应该尝试更换所有"如果"但第一个是" elseif"。

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

答案 3 :(得分: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;
  }
}

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

}

答案 5 :(得分: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;
    }
}