我开始使用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
答案 0 :(得分: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; 之前的标签,它们被视为标记的一部分,因此close标记不会被解释为“STRING;”但是 “STRING;”,这就是为什么它不起作用。
希望它对其他人有用。
答案 1 :(得分:1)
语法的名称是HEREDOC strings或“here documents”。
但是当我在服务器上运行你的代码时,我不会得到你所做的令牌错误。也许你的错误实际上是在其他地方?