echo 正在输出“0”而不是表格
Posted
技术标签:
【中文标题】echo 正在输出“0”而不是表格【英文标题】:echo is outputting "0" rather than the table 【发布时间】:2011-12-19 01:56:56 【问题描述】:看下面的代码:
<?php
$output += "
<table border='1'>
<tr>
<th>Session ID</th>
<th>TeacherUsername</th>
<th>Teacher Name</th>
<th>Module Number</th>
<th>Module Name</th>
<th>Course ID</th>
<th>Course Name</th>
<th>Year</th>
<th>Student Username</th>
<th>Student Name</th>
<th>Mark</th>
<th>Grade</th>
</tr>
";
$total = 0;
$count = 0;
while ($row = mysql_fetch_array($result))
$count++;
$total += $row['Mark'];
$output += "
<tr>
<td>$row['SessionId']</td>
<td>$row['TeacherUsername']</td>
<td>$row['TeacherForename'] $row['TeacherSurname']</td>
<td>$row['ModuleId']</td>
<td>$row['ModuleName']</td>
<td>$row['CourseId']</td>
<td>$row['CourseName']</td>
<td>$row['Year']</td>
<td>$row['StudentUsername']</td>
<td>$row['StudentForename'] $row['StudentSurname']</td>
<td>$row['Mark']</td>
<td>$row['Grade']</td>
</tr>";
$output += " </table>";
$average = (int)($total/$count);
echo "<p>Average Mark: $average</p>";
echo $output;
?>
由于某些奇怪的原因,它没有正确回显$output
(位于代码底部)。假设是输出表格,却回显0
,为什么输出0
?
【问题讨论】:
【参考方案1】:您正在连接 javascript 样式。你想要:
$output = '';
$output .= 'foobar';
【讨论】:
它有效,但出于某种奇怪的原因,它说:注意:未定义的变量:第 151 行 /web/stud/u0867587/Mobile_app/exam_grade_report.php 中的输出。这是它有“;在输出变量的末尾。为什么会这样说? 因为你试图连接一个尚未设置的变量。要么将第一个更改为$output = 'foobar';
,要么将所有代码更改为$output = '';
【参考方案2】:
不要使用javascript的,加上但是使用php的点
$output .=
但在使用.=
之前,您还必须先定义$output
。
结果:
<?php
$output = "";
$output .= "
<table border='1'>
<tr>
<th>Session ID</th>
<th>TeacherUsername</th>
<th>Teacher Name</th>
<th>Module Number</th>
<th>Module Name</th>
<th>Course ID</th>
<th>Course Name</th>
<th>Year</th>
<th>Student Username</th>
<th>Student Name</th>
<th>Mark</th>
<th>Grade</th>
</tr>
";
$total = 0;
$count = 0;
while ($row = mysql_fetch_array($result))
$count++;
$total .= $row['Mark'];
$output .= "
<tr>
<td>$row['SessionId']</td>
<td>$row['TeacherUsername']</td>
<td>$row['TeacherForename'] $row['TeacherSurname']</td>
<td>$row['ModuleId']</td>
<td>$row['ModuleName']</td>
<td>$row['CourseId']</td>
<td>$row['CourseName']</td>
<td>$row['Year']</td>
<td>$row['StudentUsername']</td>
<td>$row['StudentForename'] $row['StudentSurname']</td>
<td>$row['Mark']</td>
<td>$row['Grade']</td>
</tr>";
$output .= " </table>";
$average = (int)($total/$count);
echo "<p>Average Mark: $average</p>";
echo $output;
?>
【讨论】:
你的答案和其他人的一样。钓复选标记会让你看起来很傻。 它有效,但出于某种奇怪的原因,它说:注意:未定义的变量:第 151 行 /web/stud/u0867587/Mobile_app/exam_grade_report.php 中的输出。这是它有“;在输出变量的末尾。为什么会这样说? @AlienWebguy:我得到了 OP 评论的唯一答案。我已经删除了我发布的评论 @MayurPatel:在使用 .= 之前定义 $output,如图所示$output = "";
我真的不在乎。没那么重要。【参考方案3】:
$output += " ..."
正在添加,而不是连接。您正在将字符串添加到数字中,因此 PHP 会尽可能将字符串转换为数字,结果可能为 0
。
试试
$output .= "...";
相反。或者更好的是,使用HEREDOC:
$output .= <<<EOL
...
EOL;
【讨论】:
【参考方案4】:使用+=
将尝试添加字符串的“值”,而不是在 PHP 中连接它。
请改用.=
。
【讨论】:
它有效,但出于某种奇怪的原因,它说:注意:未定义的变量:第 151 行 /web/stud/u0867587/Mobile_app/exam_grade_report.php 中的输出。这是它有“;在输出变量的末尾。为什么会这样说?以上是关于echo 正在输出“0”而不是表格的主要内容,如果未能解决你的问题,请参考以下文章