Smarty';If';语句语法 [英] Smarty 'if' statement syntax
本文介绍了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屋!
查看全文