
在实际考试评分系统中,仅看总分是不够的——还需确保学生没有严重偏科或某科“拖后腿”。例如,题目中要求:总分 $ \geq 10 $ 且 每一项测试成绩都 严格大于 2(即最低分 ≥ 3)。原代码中 $test >= 2 存在两个问题:变量名错误(应为 $test1, $test2, $test3 之一),且逻辑不符(>= 2 允许得2分,但需求是“不能有 ≤ 2 的成绩”)。
✅ 正确解法是将所有成绩存入数组,利用 min() 函数一次性获取最低分,再判断其是否 > 2:
$test1 = 7; $test2 = 1; $test3 = 3; $test_scores = [$test1, $test2, $test3]; // 统一管理,便于扩展 $total = array_sum($test_scores); $isPassed = ($total >= 10 && min($test_scores) > 2); // 关键:min() > 2 确保每科 ≥ 3 echo $isPassed ? "Passed" : "Not Passed"; // 输出 "Not Passed"(因 $test2 = 1 ≤ 2)
? 小贴士:
综上,用数组 + min() 不仅修复了原始逻辑错误,还提升了代码的健壮性与可扩展性,是处理多变量统一阈值校验的推荐实践。