gpt4 book ai didi

php - Echo函数跳出Div

转载 作者:可可西里 更新时间:2023-11-01 00:43:07 25 4
gpt4 key购买 nike

我已经为 gettext 翻译创建了一个函数,它在一个头文件中:

function _ex($text){
echo gettext($text);
}

当我使用函数 _ex("");它翻译该函数中的任何文本,效果很好,尽管当我在另一个函数中使用它时,内部有一个 div,如下所示:

    echo '
<div class="row row-centered">
<div class="col-md-3"></div>
<div class="col-md-5">
<div class="alert alert-danger">
<strong>' . _ex("Oh snap!"). '</strong> You are banned. <b><u>Do not</u></b> register another account
<br>Reason you are banned: <b><u>'.$banneduser->reason.'</u></b>
</div>
</div>
</div>';

它出于某种原因跳出 div col-md-5 并最终显示如下:

div

它在其他一些文件中工作,但不是这个。我有 ' 。 _前任(””) 。 ' 所以它在 echo 内部工作。这背后有什么原因吗,开盘报价是否取消了div?是因为它被回显了两次吗?有什么方法可以在不必重写我的所有代码的情况下停止这种情况?结束第一个回显,然后使用该函数并重新打开另一个回显?如果它只是返回它而不是回显,是否有一个函数来检查它是否已经被回显?

最佳答案

当你在另一个 echo 中调用 _ex("Oh snap!") 时,你正在这样做:

echo 'Some text' . echo 'Oh snap!' . 'more text';

这可能会产生不可预测的结果,因为连接的 echo 将首先完全执行,然后包含的 echo 将完成。 Demo here.将您的 _ex 函数更改为如下内容:

function _ex($text){
return gettext($text);
}

并且总是这样调用_ex:

echo _ex('Oh snap!');

或者通过串联,您现在可以根据需要在我的答案中使用第一行,或者在您的问题中使用您自己的代码。

保留现有代码的唯一替代方法是为连接语句编写一个新函数:

function _exx($text) {
return gettext($text);
}

将另一个参数添加到 _ex 函数以处理上下文(类似于 print_r does it 的方式:

function _ex($text, $return = false) {
if ($return) {
return gettext($text);
}
echo gettext($text);
}

然后调用:

echo 'Some text' . _ex("Oh snap!", true) . ' more text';

或者重写你现有的回显:

echo '
<div class="row row-centered">
<div class="col-md-3"></div>
<div class="col-md-5">
<div class="alert alert-danger">
<strong>';
_ex("Oh snap!");
echo '</strong> You are banned. <b><u>Do not</u></b> register another account
<br>Reason you are banned: <b><u>'.$banneduser->reason.'</u></b>
</div>
</div>
</div>';

但是第一个和第二个选项是“最佳实践”——您不应该在函数调用中使用 echo,因为它会在您的问题中引起这些问题。

关于php - Echo函数跳出Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28346592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com