Printing PHP语法错误T_封装_和_空格

Printing PHP语法错误T_封装_和_空格,printing,syntax-error,php,heredoc,Printing,Syntax Error,Php,Heredoc,我开始学习php基础知识,在理解如何将代码与字符串混合时遇到一些问题 我发现了一种非常有用的打印字符串块的样式,但我不知道它的名称,也找不到示例 下面的代码返回错误: 分析错误:语法错误,意外的T_封装的_和_空格,第120行的/web/htdocs/food/user/index.php中需要T_字符串或T_变量或T_NUM_字符串 <?php $html_str = <<<STR <li><img alt="hello" src="$p

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

我发现了一种非常有用的打印字符串块的样式,但我不知道它的名称,也找不到示例

下面的代码返回错误:
分析错误:语法错误,意外的T_封装的_和_空格,第120行的/web/htdocs/food/user/index.php中需要T_字符串或T_变量或T_NUM_字符串

<?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

语法名称为或“heredocuments”


但是当我在我的服务器上运行代码时,我不会像你那样得到令牌错误。也许你的错误实际上在别的地方?

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

工作代码


非工作代码


问题是关闭标记字符串之前的选项卡;它们被认为是标记的一部分,所以close标记不是被解释为“STRING;”,而是被解释为“STRING;”,这就是它不起作用的原因


希望它对其他人有用。

感谢您的测试,我尝试了更简单的方法,但服务器返回了相同的错误$str=是的,我在aruba.it服务器上尝试了这段代码,但是它应该有所有的php基础组件。。。我来查一查!
<?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;
?>