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

在 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 租金}} 等于“租金”


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


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


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


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


呼如林
浏览 67回答 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&nbsp;$affitta = '{{RENT_PRICE}}';&nbsp;echo $affitta;&nbsp;if (!empty($affitta) && $affitta !== 0) {&nbsp;&nbsp; &nbsp; echo '<span class="bold">|</span> {{LANG rent}} <span style="color:#a84849;font-weight:500;">$ {{RENT_PRICE}}</span>';} else {&nbsp;&nbsp; &nbsp; echo "FREE";&nbsp;}&nbsp;然后,通过更具可读性的内容,很容易看出您的问题所在。$affitta您定义as的值'{{RENT_PRICE}}',它显然不等于 0 或任何价格。您的模板系统将替换{{RENT_PRICE}}为实际值,但这里不是数字。你实际上是在评估:if ('{{RENT_PRICE}}' !== 0) {......您需要与$video->rent_price代码中较早的值进行比较。您如何访问该值完全取决于PT_LoadPage函数内部发生的情况。
打开App,查看更多内容
随时随地看视频慕课网APP