当设置了对手的名字时,我尝试使用智能代码来打印对手的名字,但是当名字没有设置时,我只想显示“某人”。
{if isset($OPPONENT_FULL_NAME)}
%%OPPONENT_FULL_NAME%%
{else}
Someone
{/if} started a game with you.现在,当我将$OPPONENT_FULL_NAME设置为某个值时,它工作得很好,但当我将它留空时,什么也不会显示。没有“某人”。
我做错了什么?
发布于 2011-08-02 02:50:08
可以将变量$OPPONENT_FULL_NAME设置为空字符串。你可以试着这样做
{if isset($OPPONENT_FULL_NAME) && $OPPONENT_FULL_NAME not '' }%%OPPONENT_FULL_NAME%% {else} Someone {/if} started a game with you.发布于 2013-09-30 02:10:21
请记住,null不同于空字符串
{if !isset($OPPONENT_FULL_NAME) || $OPPONENT_FULL_NAME eq ''}
{$OPPONENT_FULL_NAME}
{else}
Someone
{/if|发布于 2015-10-14 21:24:51
我认为你应该先在php中进行过滤、消毒或调节。
例如:
$OPPONENT_FULL_NAME = (isset($OPPONENT_FULL_NAME) AND !empty($OPPONENT_FULL_NAME)) ? $OPPONENT_FULL_NAME : "Someone";
然后,您可以在smarty模板中调用{$OPPONENT_FULL_NAME}。
但是,如果您必须在smarty模板中执行此操作,
{$OPPONENT_FULL_NAME|default: "Someone"}将会做到这一点。
希望对大家有所帮助,干杯!
https://stackoverflow.com/questions/6902761
复制相似问题