我正在尝试使用智能代码在设置一个时打印对手的名字,但是当没有设置名称时,我想只显示“某人”。
{if isset($OPPONENT_FULL_NAME)}
%%OPPONENT_FULL_NAME%%
{else}
Someone
{/if} started a game with you.
现在,当我将$OPPONENT_FULL_NAME
设置为适合的状态时,它会很有效,但是当我将其留空时,没有任何内容显示出来。没有“某人”。
我做错了什么?
答案 0 :(得分:3)
可以设置变量$OPPONENT_FULL_NAME
,但是设置为空字符串。您可以尝试做类似
{if isset($OPPONENT_FULL_NAME) && $OPPONENT_FULL_NAME not '' }%%OPPONENT_FULL_NAME%% {else} Someone {/if} started a game with you.
答案 1 :(得分:0)
请记住,null与空字符串不同
{if !isset($OPPONENT_FULL_NAME) || $OPPONENT_FULL_NAME eq ''}
{$OPPONENT_FULL_NAME}
{else}
Someone
{/if|
答案 2 :(得分:0)
我认为你应该首先在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"}
会做到这一点。
希望有所帮助,欢呼!