时间:2022-10-30 浏览量: 收藏
模板标签 模板文件可以包含普通标签和标签库标签,标签的定界符都可以重新配置。
普通标签用于变量输出和模板注释,普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出。
标签库标签可以用于模板变量输出、文件包含、条件控制、循环输出等功能,而且完全可以自己扩展功能。 配置文件修改:
变量输出 :
在控制器中我们给模板变量赋值
$this->assign('host','www.xmsmwl.cn'); return $this->fetch();
然后就可以在模板中使用:
网址:{$host}
注意模板标签的{和$之间不能有任何的空格,否则标签无效。
数组变量使用:
$user['name'] = 'Thinkphp'; $user['email'] = 'admin@thinkphp.cn'; $view->assign('user',$user);
在模板中我们可以用下面的方式输出
Name:{$user.name} Email:{$user.email}
或者用下面的方式也是有效:
Name:{$user['name']} Email:{$user['email']}
函数使用
往往需要对模板输出变量使用函数,可以使用:
{$user.name|md5} {:md5($user.name)}
如果函数有多个参数需要调用,则使用需要用###标识变量位置
{$create_time|date="y-m-d",###}{:date(‘y-m-d’,$create_time)}
也可以直接这样写使用:加函数名使用
{:substr(strtoupper(md5($name)),0,3)}
默认值使用:
我们可以给变量输出提供默认值
{$user.nickname|default="这家伙很懒,什么也没留下"}
条件判断IF标签使用:
IF标签可以用来定义复杂的条件判断,例如:
{if condition="($name eq 1) OR ($name gt 100) "} value1 {elseif condition="$name eq 2" /} value2 {else /} value3 {/if} //注意:在condition属性中可以支持eq等判断表达式 //不支持带有”>”、”<”等符号的用法,因为会混淆模板解析
可以在condition属性里面使用php代码,例:
{if condition="count($arr) gt 5"} 数组元素个数大于5个 {else /} 数组元素个数小于5个 {/if}
运算符应用:
我们可以对模板输出使用运算符,包括对“+”“-” “*” “/”和“%”的支持。
三元运算应用:
{$status? '正常' : '错误'}
原样输出:
可以使用literal内置标签来防止模板标签被解析:
{literal} Hello,{$name}! {/literal}
循环输出标签
VOLIST标签:
Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但确保不要和name属性冲突,
{volist name="list" id="vo"} <p>{$vo.id}:{$vo.name}</p> {/volist}
如果没有指定key属性的话,默认使用循环变量i,
{volist name="list" id="vo" key="k" } {$k}.{$vo.name} {/volist}
支持输出查询结果中的部分数据
{volist name="list" id="vo" offset="5" length='10'} {$vo.name} {/volist}
输出偶数记录:mod显示的行数;没显示2行再从1开始
{volist name="list" id="vo" mod="2" } {eq name="mod" value="1"} {$vo.name} {/eq} {/volist}
FOREACH标签
foreach标签类似与volist标签,只是更加简单,没有太多额外的属性
{foreach $list as $vo} {$vo.id}:{$vo.name} {/foreach}
name表示数据源 item表示循环变量。
{foreach name="list" item="vo" key="k"} {$vo.id}:{$vo.name} {/foreach}
FOR标签
{for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }{/for}
开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,其他是可选。comparison 的默认值是lt即为小于的意思,name的默认值是i,步进值的默认值是1。
switch标签:
多条件标签
{switch 变量名} {case 1}值为1{/case} {case 1}值为2{/case} {case 1}值为3{/case} {default /}值为其他 {/switch}
case属性支持多个条件的判断
对于case属性多个条件的判断,使用”|”进行分割
{switch data.sex|intval} {case 16|17|18}值为16,17,18其中一个{/case} {default /}值为其他 {/switch}
比较标签:
eq或者 equal:等于
neq 或者notequal:不等于
gt:大于
egt:大于等于
lt:小于
elt:小于等于
heq:恒等于
nheq:不恒等于
比较标签的用法基本是一致的,区别在于判断的条件不同,格式如下:
{比较标签 name="变量" value="值"}内容{/比较标签}
in标签与range标签:
in 标签 in 标签用于某个模板变量是否在某个范围之内,格式如下:
{in name="变量名" value="值1,值2,..."}在value值范围输出内容{/in}
notin 标签 对应的notin 标签,为 in 标签的反义,即判断不在某个范围内:
{notin name="变量名" value="值1,值2,..."}不在value值范围输出内容{/notin}
in和notin两个标签合并起来等同于:
{in name="变量名" value="值1,值2,..."}在value值范围输出内容{else /}不在value值范围输出内容{/in}
range 标签 in 和 notin 标签也可以使用 range 标签来替代:
{range name="变量名" value="值1,值2,..." type="in" }在value值范围输出内容{/range}
上面的例子相当于 in 标签,当 type 属性的值为 notin 时就相当于 notin 标签。
RELATED RECOMMEND
2022-10-30
一、缓存的作用减少数据库压力用户交互比较少二、TP对缓存的支持支持缓存类型包括file,memcache,wincache,sqlite,redis和xcache三、缓存设置(application\config.php) 'cache' => [ // 驱动方式 'type' => 'File',
2022-10-30
load_trait:快速导入Traits,PHP5.5以上无需调用 /** * 快速导入Traits PHP5.5以上无需调用 * @param string $class trait库 * @param string $ext 类库后缀 * @return boolean */ load_trait($class, $ext =
2022-10-30
外贸电商领域 Twitter 已成为一种极具潜力的推广工具,能够为外贸网站快速导入大量流量,是外贸电商发展的时代趋势。一、将 Twitter 和外贸网站关联起来(一)添加 Twitter 分享按钮在网站添加 Twitter 分享按钮意义重大。这不仅方便客户将网站产品、内容分享到他们自己的 Twitter,更关键的是,每当网站更新产品或文章时,我们自己要把更新内容分享到自己的 Twitter 上。如
Copyright © 2012-2024 世敏网络 版权所有 闽ICP备18026760号-1 闽公网安备 35020502000640号 网站地图 Sitemap 关键词聚合