PHP回音块行为

时间:2015-08-31 15:02:23

标签: php html mysql echo

for($j = 0; $j < $rows; ++$j) 
{
    $result->data_seek($j);
    $row = $result->fetch_array(MYSQLI_NUM);
echo <<<_END
    <pre>
    Author: $row[0]
    Title: $row[1]
    Type: $row[2]
    Year: $row[3]
    ISBN: $row[4]
    </pre>
_END;
}

我在使用echo来处理文本块时遇到了两件事情,我在提出解释时有点难过。

  1. echo块的任何缩进都会导致网页崩溃。

  2. 如果我将fetch_array类型更改为MYSQLI_ASSOCMYSQLI_BOTH,则$row['author']等关联调用会导致页面崩溃。在访问echo时使用$row的单行调用工作正常。

1 个答案:

答案 0 :(得分:4)

  1. PHP heredoc的结束标识符不应缩进。这是手册中的警告段落。
  2.   

    警告请务必注意,带分钟标识符的行必须不包含除分号(;)以外的其他字符。这尤其意味着标识符可能没有缩进,并且在分号之前或之后可能没有任何空格或制表符。同样重要的是要认识到结束标识符之前的第一个字符必须是本地操作系统定义的换行符。

    1. 在heredoc中,不应引用数组键,也不应在android:id="@+id/messageViewSpinnerLayout"符号内引用。

      ${}