PHP 在 <<
我使用 PHP 的 EOF 字符串来格式化 HTML 内容,而无需转义引号等麻烦。如何使用该字符串内的函数?
<?php
$str = <<<EOF
<p>Hello</p>
<p><?= _("World"); ?></p>
EOF;
echo $str;
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web
技术交流群。
我使用 PHP 的 EOF 字符串来格式化 HTML 内容,而无需转义引号等麻烦。如何使用该字符串内的函数?
<?php
$str = <<<EOF
<p>Hello</p>
<p><?= _("World"); ?></p>
EOF;
echo $str;
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
据我所知,您刚刚错误地添加了heredoc
这里不需要使用丑陋的定界符语法。
只需删除它,一切都会正常:
As far as I can see, you just added heredoc by mistake
No need to use ugly heredoc syntax here.
Just remove it and everything will work:
据我所见 根据手册,不可能在 HEREDOC 字符串内调用函数。一种麻烦的方法是预先准备好单词:
想到的一个解决方法是构建一个带有 神奇的 getter 方法。
您可以像这样声明一个类:
在某个时刻初始化该类的一个对象:
然后您可以使用以下语法在 HEREDOC 块内进行 gettext 查找:
$translate->World
将自动借助神奇的 getter 方法,可以将其转换为 gettext 查找。要将此方法用于带有空格或特殊字符的单词(例如,名为
Hello World!!!!!!
的 gettext 条目,您必须使用以下表示法:这一切都未经测试,但应该可以工作。
As far as I can see in the manual, it is not possible to call functions inside HEREDOC strings. A cumbersome way would be to prepare the words beforehand:
a workaround idea that comes to mind is building a class with a magic getter method.
You would declare a class like this:
Initialize an object of the class at some point:
You can then use the following syntax to do a gettext lookup inside a HEREDOC block:
$translate->World
will automatically be translated to the gettext lookup thanks to the magic getter method.To use this method for words with spaces or special characters (e.g. a gettext entry named
Hello World!!!!!!
, you will have to use the following notation:This is all untested but should work.