PHP 语法错误 T_ENCAPSED_AND_WHITESPACE

发布于 2024-08-10 05:01:48 字数 534 浏览 1 评论 0原文

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

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

下面的代码返回错误:
解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,在 /web/htdocs/food/user/index.php 第 120 行期待 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

i'm starting to work with php basics and i have some problem understanding how mix code with strings.

I found a great and useful style to print string blocks but i don't know the name and i'm not able to find examples.

the code below return me the error:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /web/htdocs/food/user/index.php on line 120

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

can someone help me to find where i'm wrong and the name of this syntax style?

thanks
v

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墟烟 2024-08-17 05:01:48

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

工作代码

<?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;",而是被解释为 "        STRING; “,这就是它不起作用的原因。

希望它对其他人有用。

I've found the problem!
in the example I've posted it can't return the error:

Working code

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

print $str;
?>

Not working code

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

     print $str;
?>

The problem are the tabs before the close tag STRING; which are considered part of tag, so the close tag is not interpreted "STRING;" but "        STRING;", that's why it doesn't work.

hope it come usefull for someone else.

凉薄对峙 2024-08-17 05:01:48

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

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

The name of the syntax is HEREDOC strings or "here documents".

But when I run your code on my server, I don't get the token errors that you do, though. Maybe your error is actually somewhere else?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文