PHP - 嵌套三元运算符

时间:2015-10-25 17:52:50

标签: php ternary-operator

遇到一点麻烦,我试图给$ letterGrade分配字母,但似乎只分配了D和F.

 ($finalGrade >= 97) ? $letterGrade = "A+" 
        : ($finalGrade >= 93 && $finalGrade <97) ? $letterGrade = "A"
        : ($finalGrade >= 90 && $finalGrade <93) ? $letterGrade = "A-"
        : ($finalGrade >= 87 && $finalGrade <90) ? $letterGrade = "B+"
        : ($finalGrade >= 83 && $finalGrade <87) ? $letterGrade = "B"
        : ($finalGrade >= 80 && $finalGrade< 83) ? $letterGrade = "B-"
        : ($finalGrade >= 77 && $finalGrade <80) ? $letterGrade = "C+"
        : ($finalGrade >= 73 && $finalGrade <77) ? $letterGrade = "C"
        : ($finalGrade >= 70 && $finalGrade <73) ? $letterGrade = "C-"
        : ($finalGrade >= 60 && $finalGrade <70) ? $letterGrade = "D"
        : $letterGrade = "F"
        ;

1 个答案:

答案 0 :(得分:2)

不使用三元运算符,而是使用switch语句。例如:

switch ($finalGrade) {
    case ($finalGrade >= 93 && $finalGrade < 97):
    $letterGrade = "A";
    break;
    //continue $finalGrade checks
}

您还可以使用elseif声明。

if ($finalGrade >= 93 && $finalGrade < 97) { 
$lettergrade = "A";
}
elseif($finalGrade >= 90 && $finalGrade < 93) {
$letterGrade = "A-";
}
elseif($finalGrade >= 87 && $finalGrade < 90) {
$letterGrade = "B+";
}
//...continue checks....
else {
$letterGrade = "F";
}