【发布时间】:2012-03-21 20:41:59
【问题描述】:
我在 php 中使用 smarty 标签,我的问题/问题是关于 !isset 功能的。 首先,这是我创建和分配两个数组的方式。然后我用一个smarty if语句来比较条件,如果条件满足,要么显示html,要么不显示html
从数据库中创建的第一个数组被分配为 Smarty 变量。
{section name=cart loop=$cart}
{/section}
第二个数组也是从数据库中拉出来的,但是我是通过 Smarty 捕获来分配这个数组的:
{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。感谢任何见解指出我可能做错了什么
【问题讨论】:
-
您确定没有设置 $donate 吗?有可能它至少正在初始化,这就是 isset 失败的原因,您可以尝试
empty($donate)。 -
积极。我对数组 $donate 执行了 var_dump。
-
我想你可能对 isset 感到困惑,如果你做了
var_dump($donate)并且 $donate 还没有被初始化,你会得到一个关于未定义变量的 PHP 通知。您没有收到此错误的事实使我相信它确实正在初始化,只是没有数据;试试empty($donate)。 -
你在
{capture}...{/capture}块中实际在做什么,你能发布完整的代码吗? -
你检查过第一个 IF 评估 "$cart[cart].Program == TT" 吗?