我总是需要在if中设置isset吗?

时间:2012-07-16 10:35:08

标签: smarty smarty3

即使$my_flag可能未设置,以下内容是否可以接受?

{if ( $my_flag )}
    // Vrooom
{/if}

我是否始终需要isset以确保不会抛出通知,或者Smarty3是否会处理这些事情?

1 个答案:

答案 0 :(得分:0)

可以接受,但PHP会警告您$my_flag未定义。

我会做那样的事情:

{if isset($my_flag)}
    {if $my_flag == 123}
        <p>print something</p>
    {/if}
{/if}

如果您将尝试当前的脚本,一切都会正常工作,但它会记录通知。上面的脚本确保仅在设置变量时才执行某些操作。

但是,由于Smarty被缓存,您可能需要重新加载页面几次以查看更改(除非您指定$smarty_obj->force_compile = true;)。