PHP If语句脚本

  • 本文关键字:脚本 语句 If PHP php
  • 更新时间 :
  • 英文 :


我想做多项选择。分数是百分比,但我有条件句。如果分数=100%,那么最终将显示"C2熟练程度"。但如果跑步,如果我的得分超过30%,则显示"A1初学者"。脚本不起作用。请帮助

这是代码:

<?php
if ($persentaje == 100){
    $hasil="C2 Proficiency";
}
if ($persentaje > 80) {
    $hasil="C1 Advanced";
}
if ($persentaje > 60) {
    $hasil="B2 Upper Intermediate";
} 
if ($persentaje > 50) {
    $hasil="B1 Intermediate";
} 
if ($persentaje > 40) {
    $hasil="A2 Pre Intermediate";
} 
if ($persentaje > 30) {
    $hasil="A2 Elementary";
} 
else {
    $hasil="A1 Beginner";
}    
?>

考虑这两个条件:

if ($persentaje == 100){
    $hasil="C2 Proficiency";
}
if ($persentaje > 80) {
    $hasil="C1 Advanced";
}

$persentaje == 100时会发生什么?结果将是"C1 Advanced"。因为,100是,也大于80。(大于60,大于50,等等)所以所有条件都是true,因此每个条件都覆盖前一个条件的$hasil值。

如果你想让条件词互斥,你可能想要elseif:

if ($persentaje == 100){
    $hasil="C2 Proficiency";
}
elseif ($persentaje > 80) {
    $hasil="C1 Advanced";
}

对其他条件重复此步骤,直到获得最终else

除第一个语句外,所有if语句都应为else if。否则,您只是一个接一个地执行它们

您可能应该使用switch/case语句,而不是if。如果您不想更改if statement,只需使用else if,但它与switch/case 有点不同

您可以编写如下代码:

if ($persentaje == 100){
    $hasil="C2 Proficiency";
  } else if ($persentaje > 80) {
    $hasil="C1 Advanced";
  }else if ($persentaje > 60) {
    $hasil="B2 Upper Intermediate";
  }else if ($persentaje > 50) {
    $hasil="B1 Intermediate";
  }else if ($persentaje > 40) {
    $hasil="A2 Pre Intermediate";
  }else if ($persentaje > 30) {
    $hasil="A2 Elementary";
  } else {
    $hasil="A1 Beginner";
  } 

这肯定对你有用。

尝试反转if语句。按照你使用它的方式,它会覆盖自己。

<?php
if ($persentaje > 30){
    $hasil="A2 Elementary";
  }if ($persentaje > 40) {
    $hasil="A2 Pre Intermediate";
  }if ($persentaje > 50) {
    $hasil="B1 Intermediate";
  } if ($persentaje > 60) {
    $hasil="B2 Upper Intermediate";
  } if ($persentaje > 80) {
    $hasil="C1 Advanced";
  } if ($persentaje == 100) {
    $hasil="C2 Proficiency";
  } if($persentaje < 30) {
    $hasil="A1 Beginner";
  } 

使用切换案例

<?php
 switch($percentaje) {
    case $percentaje == 100 :
        $hasil = "C2 Proficiency";
        break;
    case  $percentaje > 80:
        $hasil = "C1 Advanced";
        break;
 case  $persentaje > 60:
        $hasil = "C1 Advanced";
        break;
 case  $persentaje > 50:
        $hasil = "C1 Advanced";
        break;
 case  $persentaje > 40:
        $hasil = "C1 Advanced";
        break;
 case  $persentaje > 30:
        $hasil = "C1 Advanced";
        break;
 default:
       $hasil="A1 Beginner";
}
 ?>

在php中进行此操作非常简单。。。这里有一个例子:

$money = 100;
    if($money) {
        echo "You have - ".$money;
    }else if($money < 100) {
        echo "You have less then needed";
    }else if ($money > 10) {
        echo "Your funds are critical";
    }else {
        echo "You don't have money!";
    }

创建多个if语句将导致它们一个接一个地执行。。。使用else-if语句时,它将只执行与所需参数匹配的语句。。。

如果我可以建议在PHP中使用的另一个选项是切换用例功能:

 switch(true) {
        case $percentaje == 100 :
            $hasil = "C2 Proficiency";
            break;
        case  $percentaje > 80:
            $hasil = "C1 Advanced";
            break;
    }

A) 如果有更多的选择,看起来很整洁。B) 它将根据有效选择一个选项

参考:在PHP开关中使用比较运算符

您可以使用switch case来解决这个问题。

最新更新