ThinkPHP 5 中的模板中内置了 if 标签用来进行条件判断,以下是 if 标签的使用方法:

IF标签

用法示例:

{if condition="($name == 1) OR ($name > 100) "} value1
{elseif condition="$name eq 2"/}value2
{else /} value3
{/if}

除此之外,我们可以在 condition 属性里面使用 php 代码,例如:

{if condition="strtoupper($user['site']) neq 'www.codesou.cn'"}ThinkPHP
{else /} other Framework
{/if}

condition 属性可以支持点语法和对象语法,例如: 自动判断 user 变量是数组还是对象

{if condition="$user.name neq 'ThinkPHP'"}ThinkPHP
{else /} other Framework
{/if}

或者知道 user 变量是对象

{if condition="$user:name neq 'ThinkPHP'"}ThinkPHP
{else /} other Framework
{/if}

由于 if 标签的 condition 属性里面基本上使用的是 php 语法,尽可能使用判断标签和 switch标签 会更加简洁,原则上来说,能够用 switch 和比较标签解决的尽量不用 if 标签完成。因为 switch 和比较标签可以使用变量调节器和系统变量。如果某些特殊的要求下面,if标签 仍然无法满足要求的话,可以使用原生 php 代码或者 php 标签来直接书写代码。

简洁的用法

{if condition="表达式"}
{if (表达式)}
{if 表达式}

这三种写法结果是一样的