使用内部Gettext的PHP<<&书信电报;EOF字符串
我使用PHP的EOF字符串格式化HTML内容,而无需转义引号等麻烦。如何使用此字符串中的函数使用内部Gettext的PHP<<&书信电报;EOF字符串,php,gettext,eof,Php,Gettext,Eof,我使用PHP的EOF字符串格式化HTML内容,而无需转义引号等麻烦。如何使用此字符串中的函数 <?php $str = <<<EOF <p>Hello</p> <p><?= _("World"); ?></p> EOF; echo $str; ?> EOF; echo$str; ?> 据我在中所见,不可能在herdoc字符串中调用函数。一个麻烦的方法是事先准备好单词: &
<?php
$str = <<<EOF
<p>Hello</p>
<p><?= _("World"); ?></p>
EOF;
echo $str;
?>
EOF;
echo$str;
?>
据我在中所见,不可能在herdoc字符串中调用函数。一个麻烦的方法是事先准备好单词:
<?php
$world = _("World");
$str = <<<EOF
<p>Hello</p>
<p>$world</p>
EOF;
echo $str;
?>
在某个点初始化类的对象:
$translate = new Translator();
然后,可以使用以下语法在HEREDOC块内执行gettext查找:
$str = <<<EOF
<p>Hello</p>
<p>{$translate->World}</p>
EOF;
echo $str;
?>
这一切都未经测试,但应该有效
更新:正如@mario所发现的,毕竟可以从herdoc字符串调用函数。我认为使用这样的getter是一个很好的解决方案,但是使用直接函数调用可能更容易。请参阅有关如何执行此操作的注释
据我所知,您只是错误地添加了herdeoc
这里不需要使用语法。
只要将其移除,一切都将正常工作:
<p>Hello</p>
<p><?= _("World"); ?></p>
你好
@FFish不客气。这是未经测试,所以我不能给你一个全面的保证,但据我所知,这将工作。请参阅我的最新更新(关于空格和特殊字符),了解如何处理更复杂的gettext标识。事实证明,您可以使用函数调用。使用
$\uquo
和{$\('text')}
。但是getter语法是+1。@mario哦,哇,我不知道!在我看来,这值得单独回答。谢谢你的回复,马里奥。以下是缺少的内容:$\u=“gettext”//分配函数引用以供使用。而{${(“World”)}在herdoc字符串中工作!我不认为“Hello World”是OP实际生产代码的摘录。@Pekka这没关系。对于我来说,无论大小,herdeoc仍然是无用的,在很多情况下,使用herdeoc是使用某种模板引擎的一个很好的替代方法。在我看来,它唯一的缺点是不能缩进结束标记,这会使缩进的代码出错classes@Col我完全同意,但OP提供的代码只是一个解释问题的例子,不是吗?派对迟到了几年,但我要指出一种不能简单地删除herdoc的情况:当您想要将标记分配给一个变量并对其执行其他操作,而不是立即输出它时。这就是我的处境,我为什么会来到这里。
$translate->{"Hello World!!!!!!"}
<p>Hello</p>
<p><?= _("World"); ?></p>