首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Smarty Conditional

Smarty Conditional
EN

Stack Overflow用户
提问于 2011-08-02 02:35:35
回答 3查看 219关注 0票数 0

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

代码语言:javascript
运行
复制
{if isset($OPPONENT_FULL_NAME)}
    %%OPPONENT_FULL_NAME%% 
{else} 
    Someone 
{/if} started a game with you.

现在,当我将$OPPONENT_FULL_NAME设置为某个值时,它工作得很好,但当我将它留空时,什么也不会显示。没有“某人”。

我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2011-08-02 02:50:08

可以将变量$OPPONENT_FULL_NAME设置为空字符串。你可以试着这样做

代码语言:javascript
运行
复制
{if isset($OPPONENT_FULL_NAME) && $OPPONENT_FULL_NAME not '' }%%OPPONENT_FULL_NAME%% {else} Someone {/if} started a game with you.
票数 3
EN

Stack Overflow用户

发布于 2013-09-30 02:10:21

请记住,null不同于空字符串

代码语言:javascript
运行
复制
{if !isset($OPPONENT_FULL_NAME) || $OPPONENT_FULL_NAME eq ''}
   {$OPPONENT_FULL_NAME}
{else}
   Someone
{/if|
票数 0
EN

Stack Overflow用户

发布于 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"}将会做到这一点。

希望对大家有所帮助,干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6902761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档