2

我开始使用 php 基础知识,但在理解如何将代码与字符串混合时遇到了一些问题。

我找到了一种很棒且有用的样式来打印字符串块,但我不知道名称,也找不到示例。

下面的代码返回错误:
解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,在第 120 行的 /web/htdocs/food/user/index.php 中期望 T_STRING 或 T_VARIABLE 或 T_NUM_STRING

<?php   
$html_str = <<<STR
    <li><img alt="hello" src="$path_images/pencil.png"/><a title="hello" href="$path_pages/$page/action">Details</a></li>

STR;
print $html_str;
?>

有人可以帮我找出我错的地方以及这种语法风格的名称吗?

谢谢 v

4

2 回答 2

4

我发现问题了!
在我发布的示例中,它无法返回错误:

工作代码

<?php
$str = <<<STRING
hello! this is a working string<br/>
and i can do too many things with heredoc syntax!
STRING;

print $str;
?>

不工作的代码

<?php
     $str = <<<STRING
     syntax error!<br/>
     syntax error!<br/>
     why?
     STRING;

     print $str;
?>

问题是关闭标签STRING 之前的标签;它们被认为是标签的一部分,因此关闭标签不会被解释为“STRING;” 但是“字符串;” ,这就是为什么它不起作用。

希望它对其他人有用。

于 2009-11-20T14:21:32.997 回答
1

语法的名称是HEREDOC 字符串或“此处文档”。

但是,当我在我的服务器上运行您的代码时,我没有得到您所做的令牌错误。也许您的错误实际上在其他地方?

于 2009-11-10T15:14:31.350 回答