为什么即使没有为smarty模板中的变量赋值,条件也会得到满足?

时间:2014-01-10 13:33:28

标签: php foreach smarty

我正在为智能模板分配一个数组,如下所示:

    $enquiries_labels = array("0"=>"New Enquiry",
                                                        "1"=>"Retail Enquiry",
                                                        "2"=>"Feedback",
                                                        "3"=>"Payment Query",
                                                        "4"=>"Package Query",
                                                        "5"=>"Test Query");

$smarty->assign('enquiries_labels',  $enquiries_labels);

现在我的智能模板代码如下:

    <select name="contact_label" id="contact_label">
      <option value="" {if $contact_label == ''} selected="selected" {/if}>All</option>
       {if $enquiries_labels}
         {foreach from=$enquiries_labels item=label key=key}
         <option value="{$key}" {if $contact_label == $key} selected="selected" {/if}>{$label}</option>
         {/foreach}
       {/if}
   </select>

如果我没有为PHP文件中的变量$ contact_label分配值,那么我没有考虑,那么为什么默认选择具有键New Enquiry的选项0。实际上它应该默认选择“全部”值。有人可以帮我这方面吗?

1 个答案:

答案 0 :(得分:1)

可能是因为类型转换空$ contact_label与整数转换为0而{if $ contact_label == $ key}对于$ key == 0为真 当多个选项选择=“已选择”时,实际选择了最后一个