你好我这里有两个函数,第一个函数会收到 分数的学生,并将所有分数转换为成绩,我想要 接收和分配每个年级的第二个功能 点(重量)。这是我到目前为止所尝试的内容
function gradeArray($score) {
if ($score >= 70) return "A";
elseif ($score >= 50) return "B";
elseif ($score >= 40) return "C";
else return "F";
}
function grade($grade) {
$grade=gradeArray($score);
if ($grade == "A") return "1";
elseif ($grade == "B") return "2";
elseif ($grade =="C") return "3";
else return "4";
}
// scores received from HTML form`
$scores = array (55, 68, 43, 78);
//Display result in a tabular form
echo "<table border='1'><th>Score</th><th>Grade</th>";
foreach ($scores as $score) {
echo "<tr><td>$score</td><td>" . gradeArray($score) . "</td>
<td>" . grade($grade) . "</td></tr>";
}
echo "</table>";
预期输出
Score Grade Points
55 B 2
68 B 2
43 C 3
78 A 1
运行上面的代码后,我收到以下错误
注意:未定义的变量:C:\ xampp \ htdocs \ TEST.php中的等级 第24行
注意:未定义的变量:C:\ xampp \ htdocs \ TEST.php中的得分
在第10行
尽管有不计数的错误,我仍然得到以下结果
Score Grade Points
55 B 4
68 B 4
43 C 4
78 A 4
我哪里出错?,请帮助,我在php编程非常初级
答案 0 :(得分:0)
使用得分作为两种方法调用的基础,然后使用:
-function grade($grade) {
+function grade($score) {
$grade=gradeArray($score);
(...)
echo "<tr><td>$score</td><td>" . gradeArray($score) . "</td>
-<td>" . grade($grade) . "</td></tr>";
+<td>" . grade($score) . "</td></tr>";
或者再次使用返回的成绩(更好,因为它只调用gradeArray()一次)
function grade($grade) {
-$grade=gradeArray($score);
(...)
-echo "<tr><td>$score</td><td>" . $grade = gradeArray($score) . "</td>
+echo "<tr><td>$score</td><td>" . ($grade = gradeArray($score)) . "</td>
<td>" . grade($grade) . "</td></tr>";
如果您在打开$grade
后立即获得$weight
和foreach
,并在模板代码中使用变量而不是方法调用,那就更好了。
答案 1 :(得分:0)
您的代码中有两个问题:
首先你有一个未初始化的变量$grade
。
在grade($grade)
函数中的第二个,你有一个名为$score
的变量,该变量未在函数中初始化,以便更正您对此进行编码的更改:
function gradeArray($score) {
if ($score >= 70) return "A";
elseif ($score >= 50) return "B";
elseif ($score >= 40) return "C";
else return "F";
}
function grade($grade) {
if ($grade == "A") return "1";
elseif ($grade == "B") return "2";
elseif ($grade =="C") return "3";
else return "4";
}
// scores received from HTML form`
$scores = array (55, 68, 43, 78);
//Display result in a tabular form
echo "<table border='1'><th>Score</th><th>Grade</th><th>points</th>";
foreach ($scores as $score) {
$grade = gradeArray($score);
echo "<tr><td>$score</td><td>" . gradeArray($score) . "</td>
<td>" . grade($grade) . "</td></tr>";
}
echo "</table>";