在条件语句中使用 echo

Using echo within conditional statement

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

行:

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

你试过这个吗:

<?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 '<div class="timer-col"> <span id="days"></span> <span class="timer-type">' . _e("days", "framework") . '</span> </div>';

在 HTML 回显部分使用单引号,在单引号内使用双引号,并且 PHP 与 '.' 连接

另请参阅:PHP echo inside echo

如果这是 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() 不是 return 字符串 (通常可以与字符串连接一起使用)。相反,e() 只是打印出翻译后的文本 (没有 returning 任何内容).

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