PHP If语句脚本

PHP If语句脚本,php,Php,我想做一个选择题。分数将以百分比表示,但我有条件。如果分数=100%,则最终将显示“C2熟练程度”。但如果我跑了,并且我的分数超过30%,那么我会显示“A1初学者”。脚本不起作用。请帮忙 代码如下: <?php if ($persentaje == 100){ $hasil="C2 Proficiency"; } if ($persentaje > 80) { $hasil="C1 Advanced"; } if ($persentaje > 60) {

我想做一个选择题。分数将以百分比表示,但我有条件。如果分数=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
语句都应为
else if

否则,您只是一个接一个地执行它们

请考虑以下两个条件:

if ($persentaje == 100){
    $hasil="C2 Proficiency";
}
if ($persentaje > 80) {
    $hasil="C1 Advanced";
}
$persentaje==100
时会发生什么?结果将是“C1高级”。因为,100也大于80。(并且大于60,大于50,等等)因此您的所有条件都是
true
,因此每个条件都将覆盖前一个条件的
$hasil

如果希望条件是互斥的,可能需要
elseif

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

对其他条件重复此操作,直到得到最终的
else

您可能应该使用
switch/case
语句,而不是if和if,如果您不想更改
if语句,只需使用
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中处理这个问题非常简单。。。以下是一个例子:

$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!";
    }
$money=100;
如果(美元){
回声“你有-”,美元;
}否则,如果($money<100){
回应“你拥有的比需要的少”;
}否则,如果($money>10){
回应“你的资金至关重要”;
}否则{
echo“你没有钱!”;
}

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

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

 switch(true) {
        case $percentaje == 100 :
            $hasil = "C2 Proficiency";
            break;
        case  $percentaje > 80:
            $hasil = "C1 Advanced";
            break;
    }
A) 如果有更多选项,看起来很整洁。 B) 它将根据有效内容选择一个选项


参考资料:

您可以使用switch case并解决此问题。

使用switch case

<?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";

}

 ?>

它是如何工作的?
开关
不是用于小于/大于比较,而是用于相等