我的PHP让我失望了。我试图在函数中放置一个div元素。这是原始代码:
if ($withCurrency) {
$currency = (isset($GLOBALS['aitThemeOptions']->directory->currency)) ? $GLOBALS['aitThemeOptions']->directory->currency : '';
return $currency . ' ' . $lowestPrice;
}
我想在$currency
附近加一个div。
我尝试更改此行:
return $currency . ' ' . $lowestPrice;
到此:
return "<div>" . $currency . "</div> " . $lowestPrice;
然而,它实际上将div标签作为文本输出到页面上。有人能告诉我如何添加div,使它们呈现为html?
更新
以下是整个功能:
function getTourPrice($tourId, $withCurrency = true) {
$lowestPrice = false;
$offers = getTourOffers($tourId);
// first get price from special offers
foreach ($offers as $offer) {
if ((isset($offer->options['special'])) && ((!$lowestPrice) || floatval($offer->options['price']) < $lowestPrice)) {
$lowestPrice = floatval($offer->options['price']);
}
}
// if special price isn't available then get price from normal offers
if (!$lowestPrice) {
foreach ($offers as $offer) {
if ((!$lowestPrice) || (floatval($offer->options['price']) < $lowestPrice)) {
$lowestPrice = floatval($offer->options['price']);
}
}
}
if (!$lowestPrice) return false;
if ($withCurrency) {
$currency = (isset($GLOBALS['aitThemeOptions']->directory->currency)) ? $GLOBALS['aitThemeOptions']->directory->currency : '';
return $currency . ' ' . $lowestPrice;
} else {
return $lowestPrice;
}
}
使用以下代码调用该函数的结果:
{var $lp = getTourPrice($post->id)}
{if $lp}<div class="item-price"><span><span><span class="from">From</span>{$lp}</span></span></div>{/if}
如果我使用echo而不是像这样返回:
echo "<div>" . $currency . "</div> " . $lowestPrice;
我丢失了上面的所有HTML。 I.E.以下是什么:
<div class="item-price"><span><span><span class="from">From</span>{$lp}</span></span></div>
成为这个:
<div>R</div> 56200
(其中R是$ currency,56200是$ lowestPrice)
希望这不会令人痛苦。
答案 0 :(得分:0)
这将与您使用返回
所做的事情有关我想如果你这样做了:
if ($withCurrency) {
$currency =
(isset($GLOBALS['aitThemeOptions']->directory->currency)) ?
$GLOBALS['aitThemeOptions']->directory->currency :
'';
echo "<div>" . $currency . "</div> ";
}
它会起作用。
您的代码是否是函数的结尾?
答案 1 :(得分:0)
尝试使用:
{$lp|escape:false}
答案 2 :(得分:0)
我只是将div放在$ currency变量中,因此它会在返回时添加。我会改变这行代码:
$currency = (isset($GLOBALS['aitThemeOptions']->directory->currency)) ? $GLOBALS['aitThemeOptions']->directory->currency : '';
到此:
$currency = (isset($GLOBALS['aitThemeOptions']->directory->currency)) ? '<div>'.$GLOBALS['aitThemeOptions']->directory->currency.'</div>' : '';
或其他方法:
$currency = '<div>'.$currency.'</div>';
这样您就可以在变量中定义html,而不是在返回中定义html。这没有经过测试,但这是我倾向于编码的方式。 :)希望它有所帮助!
还有一件事,它在程序员中引起了一些争议,但我也建议在php中定义html时使用单引号。