Smarty条件

时间:2011-08-01 18:35:35

标签: php smarty

我正在尝试使用智能代码在设置一个时打印对手的名字,但是当没有设置名称时,我想只显示“某人”。

{if isset($OPPONENT_FULL_NAME)}
    %%OPPONENT_FULL_NAME%% 
{else} 
    Someone 
{/if} started a game with you.

现在,当我将$OPPONENT_FULL_NAME设置为适合的状态时,它会很有效,但是当我将其留空时,没有任何内容显示出来。没有“某人”。

我做错了什么?

3 个答案:

答案 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"}会做到这一点。

希望有所帮助,欢呼!