我正在使用codeigniter框架。我有一个切换案例问题,其中交换机案例不起作用。 $total_Assessment
未按标记范围分组,$grade
的所有值均相同。希望有人能纠正我的错误。
这是我的观点功能:
<?php $number=1;$grade=null;$pointer=0;$level=null;?>
<?php foreach ($query as $data):?>
<tr>
<td><?php echo $number ?></td>
<td><?php echo $data->Matric_No; ?></td>
<td><?php echo $data->Student_Name; ?></td>
<td><?php echo $data->Result_Mark_1; ?></td>
<td><?php echo $data->Result_Mark_2; ?></td>
<td><?php echo $data->Result_Mark_3; ?></td>
<td><?php echo $data->Result_Mark_4; ?></td>
<td><?php echo $data->Result_Mark_5; ?></td>
<?php $total_Assessment=$data->Result_Mark_1+$data-Result_Mark_2+$data->Result_Mark_3+$data->Result_Mark_4+$data->Result_Mark_5 ?>
<td><?php echo $total_Assessment ?></td>
<?php
switch ($total_Assessment)
{
case "$total_Assessment>=80":
$grade="A";
break;
case "$total_Assessment>=75":
$grade="A-";
break;
case "$total_Assessment>=70":
$grade="B+";
break;
case "$total_Assessment>=65":
$grade="B";
break;
case "$total_Assessment>=60":
$grade="B-";
break;
case "$total_Assessment>=55":
$grade="C+";
break;
case "$total_Assessment>=50":
$grade="C";
break;
case "$total_Assessment>=45":
$grade="C-";
break;
case "$total_Assessment>=40":
$grade="D";
break;
default:
$grade="F";
}
?>
<td><?php echo $grade?></td>
谢谢。
答案 0 :(得分:0)
我不知道你想做什么,但我们可以在你的代码中找到它:
$total_Assessment=$data->Result_Mark_1+$data-Result_Mark_2+$data->Result_Mark_3+$data->Result_Mark_4+$data->Result_Mark_5
我们会看到加法和减法,因此$total_Assessment
必须是数字。
switch ($total_Assessment)
{
case "$total_Assessment>=80":
哦,等等! $total_Assessment
应该是PHP代码的字符串吗?那是不可能的!
我怀疑你想要这个:
if($total_Assessment){
}elseif($total_Assessment>=75){
}
...
我还认为我引用的第一行包含几个错误:$data-Result_Mark_2
?你真的有一个名为Result_Mark_2
的常数吗?您是否配置了开发框以帮助您处理错误消息?
答案 1 :(得分:0)
尝试删除这样的双引号:
case "$total_Assessment>=70":
到此:
case $total_Assessment>=70:
希望它会有所帮助。