Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用内部Gettext的PHP<<&书信电报;EOF字符串_Php_Gettext_Eof - Fatal编程技术网

使用内部Gettext的PHP<<&书信电报;EOF字符串

使用内部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的EOF字符串格式化HTML内容,而无需转义引号等麻烦。如何使用此字符串中的函数

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