我正在使用php的smarty标签,我的问题/问题是关于!isset功能。 首先,这是我如何创建和分配我的两个数组。然后我使用SMarty IF语句来比较条件,如果满足条件,则显示或不显示HTML
第一个数组从数据库创建,被指定为Smarty变量。
{section name=cart loop=$cart}
{/section}
第二个数组也是从数据库中提取的,但是我通过Smarty capture分配这个数组:
{capture name='donate' assign='donate'}
{/capture}
分配数组后,这里是if语句:
{if $cart[cart].Program == TT && !isset($donate)}
<td>Make a difference. Donate $10.00 to the ASPCA</td>
{/if}
即使没有设置$ donate数组,HTML仍会显示。欣赏任何洞察力,指出我可能做错了什么
答案 0 :(得分:0)
未设置$donate
数组或只是一个空数组,您是否尝试使用empty($donate)
?
答案 1 :(得分:0)
{capture name='donate' assign='donate'}
{/capture}
{$donate|var_dump}
会给你
string(0) ""
因为只有isset(null) === false
,您可能希望将表达式更改为
{if $cart[cart].Program == TT && $donate}
或!empty($donate)
,如果您愿意的话。