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”而不是表格的主要内容,如果未能解决你的问题,请参考以下文章

输出表格

使用PHP打印出水平而不是垂直的表格

SUM 给了我一个日期而不是 Google 表格中的数字

Google Apps脚本 - 复制到现有电子表格

ReactJS 7 - 如何根据其值有条件地仅更改表格单元格(而不是行)的背景颜色?

如何在表格单元格内显示文本消息而不是图像?