gpt4 book ai didi

php - heredoc 语句的问题

转载 作者:可可西里 更新时间:2023-11-01 00:07:52 29 4
gpt4 key购买 nike

我正在尝试用 heredoc 语句替换 HTML 代码。但是,我在最后一行收到解析错误。我确信我没有在 heredoc 结束标记行上留下任何前导空格或缩进。以下是代码的一部分:

$table = <<<ENDHTML
<div style="text-align:center;">
<table border="0.5" cellpadding="1" cellspacing="1" style="width:50%; margin-left:auto; margin-right:auto;">
<tr>
<th>Show I.D</th>
<th>Show Name</th>
</tr>
ENDHTML;
while($row = mysql_fetch_assoc($result)){
extract($row);
$table .= <<<ENDHTML
<tr>
<td>$showid2 </td>
<td>$showname2</td>
</tr>
ENDHTML;
}
$table .= <<<ENDHTML
</table>
<p><$num_shows Shows</p>
</div>
ENDHTML;
echo $table;
?>

问题出在哪里?除了上述之外,我还有一个相关问题。作为一种编码实践,是始终使用 PHP 代码更好还是使用 heredoc 语法更好。我的意思是,在 PHP 模式下,脚本在 HTML 和 PHP 代码之间来回跳动。那么,哪种方法是首选?

最佳答案

来自PHP manual about the Heredoc syntax :

The closing identifier must begin in the first column of the line.

稍后在漂亮的红色警告框中:

It is very important to note that the line with the closing identifier must contain no other characters, except possibly a semicolon (;). That means especially that the identifier may not be indented, and there may not be any spaces or tabs before or after the semicolon.

所以你需要这样写代码才能符合语法规范:

$table = <<<ENDHTML
<div style="text-align:center;">
<table border="0.5" cellpadding="1" cellspacing="1" style="width:50%; margin-left:auto; margin-right:auto;">
<tr>
<th>Show I.D</th>
<th>Show Name</th>
</tr>
ENDHTML;
while($row = mysql_fetch_assoc($result)){
extract($row);
$table .= <<<ENDHTML
<tr>
<td>$showid2 </td>
<td>$showname2</td>
</tr>
ENDHTML;
}
$table .= <<<ENDHTML
</table>
<p><$num_shows Shows</p>
</div>
ENDHTML;
echo $table;

是否真的要使用它取决于您。

关于php - heredoc 语句的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1222638/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com