我打算使用函数调用在php中对数字索引数组的元素进行分级;我的函数调用不起作用:它没有对元素进行分级,我无法弄清代码中的错误。请帮助 提前谢谢
<?php
//function intended to grade array elements
function gradeArray($x){
if($score>= 70){
echo"A";
}
elseif($score >= 50){
echo"B";
}
elseif($score>= 40){
echo"C";
}
else{
echo"F";
}
}
// Array of Scores to be graded
$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>";
echo$score."</td>";
echo"<td>". gradeArray($score);
echo"</td></tr>";
}
echo"</table>";
?>
答案 0 :(得分:2)
你将$ x传递给你的函数然后调用$ score。 您的得分数组也是字符串格式,只需删除引号即可使它们成为数字。 同时将$ x更改为$ score,它应该可以正常工作! :)
<?php
//function intended to grade array elements
function gradeArray($score) {
if ($score >= 70) return "A";
elseif ($score >= 50) return "B";
elseif ($score >= 40) return "C";
else return "F";
}
// Array of Scores to be graded
$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></tr>";
}
echo "</table>";
?>
答案 1 :(得分:1)
你的数组元素是字符串。使用
将所有元素转换为int gradeArray($x){
$score=(int)$x;
}
试试这个会起作用
答案 2 :(得分:1)
首先,由于您使用$score
,因此您的函数中很可能未定义$x
。
function gradeArray($x){
然后您使用if条件if($score>= 70){
。
此外,在您的返回值中,只需使用return
。
return"A"; // and others
使用return
而非echo
,以便此联合echo "<td>". gradeArray($score);
有效。
答案 3 :(得分:0)
$score
,该函数将变量提取为$x
尝试将$score
更改为$x
或定义$score.
,您可以在您的函数中也使用global $score
。你也应该返回值而不是使用echo使用下面的代码
<?php
//function intended to grade array elements
function gradeArray($x){
$score=$x;
if($score>= 70){
return "A";
}
elseif($score >= 50){
return "B";
}
elseif($score>= 40){
return "C";
}
else{
return "F";
}
}
// Array of Scores to be graded
$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>";
echo$score."</td>";
echo"<td>". gradeArray($score);
echo"</td></tr>";
}
echo"</table>";
?>
希望这有助于你
答案 4 :(得分:0)
试试这个
<?php
//function intended to grade array elements
function gradeArray($x) {
if ($x >= 70) {
return "A";
} elseif ($x >= 50) {
return "B";
} elseif ($x >= 40) {
return "C";
} else {
return "F";
}
}
// Array of Scores to be graded
$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>";
echo$score . "</td>";
echo"<td>" . gradeArray($score);
echo"</td></tr>";
}
echo"</table>";
?>
答案 5 :(得分:0)
function grading( $marks ){
$grade = mysql_query("SELECT grade_name,grade_point FROM table_name **strong text**WHERE smark <= round($marks) AND hmark >= round($marks)");
$gd = mysql_fetch_row( $grade );
return $gd[0];
}