{if},{elseif},{else}

Smarty的{if}条件判断和PHP的if 非常相似,只是增加了一些特性。 每个{if}必须有一个配对的{/if}. 也可以使用{else} 和 {elseif}. 全部的PHP条件表达式和函数都可以在if内使用,如||or&&andis_array(), 等等.

如果开启了安全机制,那么只有在$php_functions设置允许的PHP函数才能使用。 参见安全机制

下面是可用的运算符列表,使用中都会放到元素的中间并且用空格分隔。 注意列表中[方括号]的是可选的,而且还会列出对应PHP的表达式。

运算符 别名 语法示例 含义 对应PHP语法
== eq $a eq $b 等于 ==
!= ne, neq $a neq $b 不等于 !=
> gt $a gt $b 大于 >
< lt $a lt $b 小于 <
>= gte, ge $a ge $b 大于等于 >=
<= lte, le $a le $b 小于等于 <=
===   $a === 0 绝对等于 ===
! not not $a 非 (一元运算) !
% mod $a mod $b 取模 %
is [not] div by   $a is not div by 4 取模为0 $a % $b == 0
is [not] even   $a is not even [非] 取模为0 (一元运算) $a % 2 == 0
is [not] even by   $a is not even by $b 水平分组 [非] 平均 ($a / $b) % 2 == 0
is [not] odd   $a is not odd [非] 奇数 (一元运算) $a % 2 != 0
is [not] odd by   $a is not odd by $b [非] 奇数分组 ($a / $b) % 2 != 0

Example 7.44. {if} 表达式

  1. {if $name eq 'Fred'}
  2. Welcome Sir.
  3. {elseif $name eq 'Wilma'}
  4. Welcome Ma'am.
  5. {else}
  6. Welcome, whatever you are.
  7. {/if}
  8.  
  9. {* an example with "or" logic *}
  10. {if $name eq 'Fred' or $name eq 'Wilma'}
  11. ...
  12. {/if}
  13.  
  14. {* same as above *}
  15. {if $name == 'Fred' || $name == 'Wilma'}
  16. ...
  17. {/if}
  18.  
  19. {* parenthesis are allowed *}
  20. {if ( $amount < 0 or $amount > 1000 ) and $volume >= #minVolAmt#}
  21. ...
  22. {/if}
  23.  
  24. {* you can also embed php function calls *}
  25. {if count($var) gt 0}
  26. ...
  27. {/if}
  28.  
  29. {* check for array. *}
  30. {if is_array($foo) }
  31. .....
  32. {/if}
  33.  
  34. {* check for not null. *}
  35. {if isset($foo) }
  36. .....
  37. {/if}

参考:http://www.smarty.net/docs/zh_CN/language.function.if.tpl

smarty 内置函数if 等判断的更多相关文章

  1. Smarty内置函数之capture

    capture的作用是: 捕获模板输出的数据并将其存储到一个变量,而不是把它们输出到页面,任何在 {capture name="foo"}和{/capture}之间的数据将被存储到 ...

  2. smarty内置函数、自定义函数

    1.把字符串里的d字母替换成h格式:{'d'|str_replace:'h':$str}; d要查找的字符 h要替换的字符 $str字符串 2.function test($param){$p1=$p ...

  3. smarty内置函数

      1.{append} 追加 2.{assign} 赋值 3.{block} 块 4.{call} 调用 5.{capture}捕获 6.{config_load}用来从配置文件中加载config变 ...

  4. Smarty内置函数之config_load

    config_load的作用是: 用于从配置文件中加载变量,属性file引入配置文件名,另外若配置文件包含多个部分,可以使用属性section指定从那部分取得变量(若不指定,将会引入失败). 实例: ...

  5. 【Python全栈笔记】04 [模块二] 18 Oct lambda表达式, 内置函数

    lambda表达式 lambda表达式是函数的一种简化,如下面两种函数定义方法,实际上效果是一样的. 使用lambda表达式的函数,func2是函数名,lambda: 后面的123 即为返回值. de ...

  6. Day4 内置函数补充、装饰器

    li = [11,22,33,44]def f1(arg): arg.append(55)#函数默认返回值None,函数参数传递的是引用li = f1(li) print(li)   内置函数补充: ...

  7. 第四天 内置函数2 随机码 装饰器 迭代器、生成器 递归 冒泡算法 JSON

    关于函数的return li = [11,22,33,44] def f1(arg): arg.append(55) li = f1(li) print(li) 因为li = f1(li) 实际赋值的 ...

  8. python面向对象的多态-类相关内置函数-类内置魔法函数-迭代器协议-上下文管理-04

    多态 一种事物具备不同的形态 例如:水 --> 固态.液态.气态 多态:# 多个不同对象可以相应同一个对象,产生不同的结果 首先强调,多态不是一种特殊的语法,而是一种状态,特性(多个不同对象可以 ...

  9. 绑定与非绑定方法及反射,isinstance和issubclass内置函数

    目录 绑定方法与非绑定方法 1.绑定方法 2.非绑定方法(staticmethod) isinstance和issubclass 内置函数 1.isinstance 2.issubclass 反射(面 ...

随机推荐

  1. Easyui获取数据库date数据的显示

    众所周知Oracle数据库中的date与众不同,在Easyui中显示数据库的date类型如果不经过转化为显示为Object.因此需要经过处理. 1.首先你要写转化date的JavaScript < ...

  2. CoreText学习(一)Base Objects of Core Text

    最近要做一个读入Word,PDF格式等的文件并且加以编辑的程序,本来以为使用Text Kit结合Text View来打开doc文件是完全没问题的,结果用了各种方法打开要么是数据是nil,要么打开的文字 ...

  3. 2016-05-I

    2016 年上半年软件设计师上午真题 1. VLIW 是( )的简称.A.复杂指令系统计算机 B.超大规模集成电路C.单指令流多数据流 D.超长指令字 2.主存与 Cache 的地址映射方式中,( ) ...

  4. NuGet 问题及小技巧

    在使用NuGet程序包管理时,经常会遇到的一些小问题.比如,联网搜索时间太长,搜索不到常见或想要的程序包,程序包版本兼容问题,想安装制定的版本等. 那么我们可以使用以下的一些小技巧来解决. 1.检查N ...

  5. 转载:mybatis和hibernate 解析

    第一章     Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀 ...

  6. asp.net mvc cooike 购物车 如何实现

    先上代码: 1. ShoppingCartService 类 using System; using System.Collections.Generic; using System.Linq; us ...

  7. 新版ADT出现appcompat_v7的问题

    问题 更新ADT至22.6.0版本号之后,创建新的安装项目,会出现appcompat_v7的内容.而且是创建一个新的内容就会出现. 事实上appcompat_v7是Google自己的一个兼容包.一个支 ...

  8. 计算机网络VLAN学习

    首先要搞明白VLAN的由来,为什么会产生这样一种技术.这得从计算机网络的数据交换说起,最开始,我们的网络处于蛮荒时代,数据是怎么交换的,就是简单的介质共享,大家都接到一条线路上,然后互相发数据,这个必 ...

  9. Creating Apps With Material Design —— Defining Shadows and Clipping Views

    View转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢 定义阴影和裁减 材料设计引入了深度的 ...

  10. Mysql数据库里面的String类型依照数字来排序以及按时间排序的sql语句

    今天做项目的时候,遇到个小小的问题,在数据库中查询的时候,要用String类型的ID进行一下排序!(注:ID字段为 varchar 类型) 解决的方法: 如: SELECT * FROM  Stude ...