比较运算符问题,当模板变量为零时

问题描述 投票:0回答:1

在content.php页面上,我有以下内容。

$html_videos = '';
if (!empty($videos)) {
    foreach ($videos as $key => $video) {
        $video = PT_GetVideoByID($video, 0, 0, 0);
        $html_videos .= PT_LoadPage('videos/list', array(
            'SELL_VIDEO' => $video->sell_video, 
            'RENT_PRICE' => $video->rent_price 
        ));
    }
}

在加载的list.html页面上,我有以下内容

            <?php $affitta = '{{RENT_PRICE}}'; echo $affitta; if (!empty($affitta) && $affitta !== 0) { ?><span class="bold">|</span> {{LANG rent}} <span style='color:#a84849;font-weight:500;'>$ {{RENT_PRICE}}</span><?php } else { echo "FREE"; } ?>

{{LANG rent}}等于 "租金"

Var $affitta回声一直很好;然而,无论是0还是5,它总是返回跨度,因此 "Rent $affitta value",而不是当$affitta等于0时,我希望它返回 "FREE"。

我试着用&&$affitta !='0'加引号,但行为相同。所以,我想做的是,如果RENT_PRICE ($affitta)为零,则显示FREE,如果租金价格不为零,则显示租金价格,但无论我怎么尝试,我都无法让它将$affitta识别为零,尽管回声显示它为零。

我已经广泛地搜索了一个答案,并尝试了各种其他建议的解决方案,但没有成功。

我希望我已经说得很清楚了,如果不清楚,请让我知道并允许我澄清。我到底做错了什么?

php mysql zero comparison-operators
1个回答
1
投票

你的生活会更容易,如果有了最后一行代码(在 list.html),你没有一次次跳进跳出PHP。这一行。

<?php $affitta = '{{RENT_PRICE}}'; echo $affitta; if (!empty($affitta) && $affitta !== 0) { ?><span class="bold">|</span> {{LANG rent}} <span style='color:#a84849;font-weight:500;'>$ {{RENT_PRICE}}</span><?php } else { echo "FREE"; } ?>

就是简单的这个。

<?php 
$affitta = '{{RENT_PRICE}}'; 
echo $affitta; 
if (!empty($affitta) && $affitta !== 0) { 
    echo '<span class="bold">|</span> {{LANG rent}} <span style="color:#a84849;font-weight:500;">$ {{RENT_PRICE}}</span>';
} else { 
    echo "FREE"; 
} 

然后,用一些更可读的东西,很容易看出你的问题在哪里。你定义了 $affitta 作为 '{{RENT_PRICE}}'很明显,它不等于0或者不管价格是多少。你的模板系统会用 {{RENT_PRICE}} 与实际值,但这里它不是一个数字。事实上,你是在评估。if ('{{RENT_PRICE}}' !== 0) {...

中的值进行比较。$video->rent_price 早期的代码。如何访问该值完全取决于你的 PT_LoadPage 职能。

© www.soinside.com 2019 - 2024. All rights reserved.