解析错误:语法错误,第143行的E:\ xampp \ htdocs \ announcements \ announcement.php中的意外$结束

时间:2009-11-27 08:19:48

标签: php debugging parsing

我收到此错误消息

  

解析错误:语法错误,意外   $ end in   E:\ XAMPP \ htdocs中\公告\ announcement.php   在第143行

第143行是PHP文件的最后一行。 当我发表评论时

$htmlcode=<<<eod
<div>$question</div>
<div>$option1  $option2  $option3  $option4</div><br/>
eod;    
echo $htmlcode;

错误消失了。 怎么了?

3 个答案:

答案 0 :(得分:4)

eod;

后面有空格

manual

中所述
  

非常重要的是要注意到   具有结束标识符的行必须   不包含其他字符   可能是分号(;)。这意味着   特别是标识符可能不会   缩进,可能没有   在之前或之后的空格或制表符   分号。这也很重要   意识到第一个角色   在结束标识符之前必须   由本地定义的换行符   操作系统。这是UNIX上的\ n   系统,包括Mac OS X.   关闭分隔符(可能跟随   必须遵循分号   换行。

答案 1 :(得分:2)

我在eod;之后发现了什么,你在那里有一些空白。

删除空格,它会正常工作。

测试:

<?php
$htmlcode=<<<eod
<div>$question</div>
<div>$option1  $option2  $option3  $option4</div><br/>
eod;
echo $htmlcode;
?>

答案 2 :(得分:1)

heredoc块中的变量名称包含在{}中,如下所示:

$htmlcode=<<<eod
<div>{$question}</div>
<div>{$option1}  {$option2}  {$option3}  {$option4}</div><br/>
eod;
echo $htmlcode;

问题在于,由于您的$question$option4变量与结束<标记的开头div之间没有空格,因此PHP会窒息。< / p>

此外,请确保在eod分隔符后面的分号后面有空格。该行唯一允许的是你的分隔符和必要时的分号。