zoukankan      html  css  js  c++  java
  • smarty学习笔记三 常用内建方法

    PHP内建方法
    {$var=...}
    该方法是{assign}的简写模式,用来直接在模版中定义一个变量。
    属性:
    scope: parent\root\global
    支持nocache

    {append}
    在调用模版的过程中向模版变量中创建一个数组变量,或者向一个已知的数组变量中追加元素,支持nocache标签
    属性:
    var 变量名
    value 变量值
    index 插入的变量在数组中的下标索引,如果没指定该值,则默认添加在数组的最后
    scope 访问权限
    支持nocache标签

    {assign}
    作用与{$var=...}相同
    属性
    var 定义的变量名
    value 定义的变量值
    scope 访问权限
    支持nocache标签

    {call}
    用来调用在模版中使用{function}标签定义的方法。该方法必须含有name属性,同时也可以将变量以属性的方式传递给调用的方法中
    属性:
    name 要调用的模版方法命
    assign 将调用模版方法后返回来的值存储到assign定义的变量中,而不是直接输出返回值
    [var...]向模版方法中传递变量以供方法使用
    支持nocache标签

    {capture}
    用来收集出现在{capture name='foo'}与{/capture}块之间的内容,并将其内保存到名字为foo的capture块标签中,如果未指明name属性,缺省default。可以使用$smarty.capture.foo来访问保存的内容。该标签不可被嵌套使用。
    属性:
    name capture块标签名
    assign 若指定该属性,将捕获的内容赋值到给定变量中
    append 用来将捕获的内容追加到指定的数组中去
    支持nocache标签

    {config_load}
    用来获取配置文件中的变量信息
    属性:
    file 要读取的配置文件名
    section 读取配置文件中指定片段
    scope 权限分配

    {debug}
    弹出调试控制页面。该设置不会受到在php脚本中对debug设置的影响。

    {extends}
    该标签用在子模版中,用来指明所要继承的父模版。
    该标签必须在子模版的第一行中出现
    如果子模板用{extends}标签继承父模板,那么它只能包含{block}标签(内容),其它任何模板内容都将忽略; 
    使用此语法为模板资源继承$template_dir目录外的文件。 
    属性:
    file 要被继承的模版名

    {for}
    {for}{forelse}标签用来进行简单的循环,它支持下面两种格式的用法:
    {for $var=$start to $end} 步长为1
    {for $var=$start to $end step $step} 指定步长
    但循环为空时执行{forelse}
    属性:
    max 限制最大的循环次数
    支持nocache标签

    {foreach},{foreachelse}
    用来对一个数组数据进行简单的循环,格式有:
    {foreach $array as $val}
    {foreach $array as $key=>$val}
    当循环的内容为空时执行{foreachelse}语句
    {foreach}具有下列属性:@index, @iteration, @first, @last, @show, @total。
    支持{break}和{continue}

    {function}
    用于在模版内部创建模版函数,调用方法与插件调用类似。
    注意:模版函数是全局的,如果要调用外部模版的模版函数,必须使用{call}标签,调用自己模版的模版函数则可以直接使用{functionname}形式来调用。

    {if},{elseif},{else}
    与php中类似,只是必须用{/if}进行结束标志。所有PHP条件函数和方法都可使用(is_array())。

    {include}
    用于将其它模版引入到当前模版中,当前模板中的任何有效变量在被包含模板中同样可用。 
    必须指定file属性,该属性指明模板资源的位置。 
    设置assign属性选项可以指定{include}的输出贮存分配给哪个模板变量,而不显示内容,类似于{assign}。 
    变量可以作为属性参数传递给被包含模板,任何明确传递给被包含模板的变量只在被包含文件的作用域中有效。如果传递的属性变量在当前模板中有同名变量,那么传递的属性变量将覆盖当前模板变量。 
    被包含模板内部可以使用主模板的所有变量,但在被包含模板里面改变或新建的变量只有本地作用域,使用{include}语句后这些变量在主模板内部将不可见;有两种方法可以改变这种默认行为(变量作用域):在{include}语句中使用scope属性对被包含模板的所有赋值变量有效,或在{assign}语句中使用scope属性改变个别变量作用域。后一特性在从被包含模板返回值给主模板时非常有用。 
    包含$template_dir文件夹之外的模板请使用模板资源语法。
    支持nocache、caching、cache_lifetime标签
    inline标签:设置该项,将会被包含文件编译到包含文件中(很有用)

    {include_php} {insert}不赞成使用

    {ldelim},{rdelim}
    输出smarty的左右标签。

    {nocache}
    必须与{/nocache}成对出现。用来禁用模版中的某个片段进行缓存。即出现在该块中的内容不会被缓存

    {section},{sectionelse}
    对连续的数值下标索引的数组进行循环。无法对值索引数组进行循环,建议使用{foreach}

    {setfilter}
    必须与{/setfilter}标签成对出现。出现在该块标签内的所有变量都会进行过滤
    语法:{setfilter filter1|filter2|filter3....}...{/setfilter}
    该标签可以被嵌套使用,内嵌的标签过滤器会覆盖上层的过滤器

    {while}
    与PHP的while语句类似。所有PHP条件函数和方法都可使用(is_array())。
    PHP技术交流群 170855791

  • 相关阅读:
    使用python对mysql主从进行监控,并调用钉钉发送报警信息
    CentOS7下安装gitlab
    nginx日志自动切割
    Mysql定时备份数据脚本
    Linux下搭建FTP服务
    linux系统盘使用率达到100%的问题查找和解决方法
    CentOS6.5+nginx+mysql+php(laravel)服务器环境搭建
    RHEL6和RHEL7恢复root用户密码
    在Dell R720服务器上安装ESXI5.5时会出现卡在LSI_MR3.V00的解决方法
    /23 /24 /26/28 /29 /30或10.0.0.1/29这样怎么算服务器IP数是多少?
  • 原文地址:https://www.cnblogs.com/gbyukg/p/2506648.html
Copyright © 2011-2022 走看看