Smarty'If'语句语法 [英] Smarty 'if' statement syntax

查看:16
本文介绍了Smarty'If'语句语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我根据名称中的字符数分配了一个变量,该变量返回一个整数(1、2、3等)。如果选项名称与变量匹配,我想进一步添加一个{if}语句来显示选项。选项名称为5"x 7"-1、5"x 7"-2、5"x 7"-3等。

{assign var="numberofcharacters" value=$smarty.get.name|count_characters}

{if $vr.variant_name == '5" x 7" - $numberofcharacters' || $vr.variant_name == '8" x 11" - $numberofcharacters'}
...
{/if}

这不会产生结果,即使我有3个选项应该显示。有人能告诉我我的{if}语句有什么问题吗?

我无法使用:

{if $vr.variant_name|contains:}

因为如果返回值为1,则还会包括10、11和12,而我只需要包括1。

非常感谢

推荐答案

带转义引号的Smarty3:

{$numberofcharacters = 1}
{$var = "5" x 7" - {$numberofcharacters}"}
{$var}

{$numberofcharacters = 1}
{$name = '5" x 7"'}
{$var = "{$name} - {$numberofcharacters}"}
{$var}

或Smarty2

{assign var="numberofcharacters" value=1}
{assign var="name" value='5" x 7"'}
{assign var="var" value="`$name` - `$numberofcharacters`"}
{$var}

或使用cat modifier

{assign var="numberofcharacters" value=1}
{assign var="name" value='5" x 7"'}
{assign var="var" value=$name|cat:" - "|cat:$numberofcharacters}
{$var}

把东西放在一起应该很容易…

{$numberofcharacters = 1}
{$five_seven = "5" x 7" - {$numberofcharacters}"}
{$eight_eleven = "8" x 11" - {$numberofcharacters}"}
{if $vr.variant_name == $five_seven || $vr.variant_name == $eight_eleven}
  …
{/if}

但是…如果您有一个要检查的固定模式,您可能希望使用正则表达式来代替?还是子字符串?

{$variant_name = '5" x 7" - 123'}
{if preg_match('/^5" x 7"|^8" x 11"/', $variant_name, $tmp)}
  hello world
{/if}

(您应该通过…在您的php中做类似的事情)

这篇关于Smarty'If'语句语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆