微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缩短if语句聪明的方式吗?

如何解决缩短if语句聪明的方式吗?

| 是否可以缩短我的陈述,例如:
{if $name eq \'Fred\' or \'Monalisa\' or \'Simon\'}
    Welcome Sir.
{/if}
如果是这样,它将如何看起来?     

解决方法

        @Gaurav的答案很接近,但是语法并不聪明。这应该工作:
{if in_array($name,array(\'Fred\',\'Monalisa\',\'Simon\')}
    Welcome Sir.
{/if}
顺便说一句,我不认为有人叫Monalisa会更喜欢被称为“先生”。 :)     ,        您也可以在PHP中执行以下逻辑:
<?php

// where $feminine_names is array of names,ex,array(\'Mary\',\'Sue\')
$welcome_title = in_array($name,$feminine_names) ? \'Madame\' : \'Sir\';

// if name is still needed in your template
$smarty->assign(\'name\',$name);
$smarty->assign(\'welcome_title\',$welcome_title);

?>
{*template file*}
Welcome {$welcome_title}.
或使用自定义修饰符加倍努力:
<?php

function welcome_title($name){
    // where $feminine_names is array of names,\'Sue\')
    return in_array($name,$feminine_names) ? \'Madame\' : \'Sir\';
}

$smarty->register_modifier(\'welcome_title\',\'welcome_title\');
$smarty->assign($name);

?>
{*template file*}
Welcome {$name|welcome_title}.
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。