在条件语句中使用echo


Using echo within conditional statement

我正在使用一个条件语句来检查页面的语言。当我只需要输出HTML时,这很好,但我需要翻译的特定行中已经有一个echo语句,我不确定如何回显整个语句。

线路:

<div class="timer-col"> <span id="days"></span> <span class="timer-type"><?php _e('days', 'framework'); ?></span> </div>

我的代码:

<?php
$mylocale = get_bloginfo('language');
if($mylocale == 'en' || $mylocale == 'en-US') {
    echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type"><?php _e('days ', 'framework'); ?></span> </div>';
} else {
    echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type"><?php _e('dien', 'framework'); ?></span> </div>';
}
?>

如果这是WordPress及其_e()函数,您可能需要将回声线分解为以下示例:

<?php
$mylocale = get_bloginfo('language');
if($mylocale == 'en' || $mylocale == 'en-US') {
    echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">';
    _e('days ', 'framework');
    echo '</span> </div>';
} else {
    echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">';
    _e('dien', 'framework');
    echo '</span> </div>';
}
?>

这是因为_e()不返回字符串(通常可以与字符串串联使用)。相反,e()只是打印出翻译文本(不返回任何内容)

我注意到,如果我尝试在字符串中使用e(),我会得到意外的放置结果,即e()最终会在哪里与翻译文本相呼应。

你试过这个吗:

<?php
$mylocale = get_bloginfo('language');
if($mylocale == 'en' || $mylocale == 'en-US') {
    echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">'. _e('days ', 'framework').'</span> </div>';
} else {
    echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">'. _e('dien', 'framework').'</span> </div>';
}
?>

您需要编写类似于以下内容的echo语句:

echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">' . _e("days", "framework") . '</span> </div>';

HTML呼应部分周围有单引号,单引号内有双引号,PHP与"连接

另请参阅:PHP echo in echo