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

Comparison operator problem, when template variable is zero

在 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,它总是 return 跨度,因此 "Rent $affitta value" 而当 $affitta 等于零时,我希望它是 return "FREE".

我尝试使用 && $affitta !== '0' 和引号,但行为相同。 如果可能有帮助,数据库中的列是整数,默认值为 0。因此,我要做的是如果 RENT_PRICE ($affitta) 为零则显示免费,如果不为零则显示租金,但是无论我尝试什么,我永远无法让它将 $affitta 识别为零,尽管回声显示它是零。

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

我希望我已经说清楚了,如果没有,请告诉我并让我澄清一下。我做错了什么?

如果有了最后一行代码(在 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 函数中发生的事情。