2011-05-31 25 views

回答

1

@ Gaurav的答案很接近,但不是聪明的语法。这应该工作:

{if in_array($name, array('Fred', 'Monalisa', 'Simon')} 
    Welcome Sir. 
{/if} 

在一个侧面说明,我不认为有人叫蒙娜丽莎宁愿被称为“先生”。 :)

+2

hehe http://www.google.com/search?hl=zh-CN&nfpr=1&sa=X&ei=D83kTavRBcmZOr6lvLcG&ved=0CBgQBSgA&q=mona+lisa+was+a+man&spell=1&bav=on.2,or.r_gc.r_pw &biw = 1280&bih = 939 – 2011-05-31 11:12:40

+0

@Wesley van Opdorp Hm。那么,这是开放的辩论;) – 2011-05-31 11:47:40

+0

嗯,我想我不能在一个聪明的循环中使用in_array – Cameleon 2011-05-31 12:03:45

0

你也可以做这样的逻辑在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}. 

或走一英里,使用自定义modifier

<?php 

function welcome_title($name){ 
    // where $feminine_names is array of names, ex, array('Mary', '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}.