更多课程 选择中心

PHP培训
美国上市教育机构

400-111-8989

PHP培训

Smarty语法基础篇(一)

  • 发布:PHP培训
  • 来源:PHP教程
  • 时间:2016-08-29 16:13

达内php教程频道为大家分享:smarty3从入门到精通详解之Smarty语法基础篇(一)

4.1 变量

模板中的变量主要来源有三种。

4.1.1、是由原php文件中分配过来的。

$smarty->assign(‘name’,’韩灵稚’); #在源php文件中分配

你好, {$name} #在模板文件中使用

4.1.2、是由配置文件中分配过来的。

$smarty->configLoad(“configs/my.conf”) #在源php文件中载入配置文件,也可以在模板中载入

这是{#gv#}
#在模板文件中使用

4.1.3、是在模板文件中创建的。

{assign var=”name” value=”韩灵稚” nocache=”false”scope=”global”}

#在模板中定义的变量,如果之前定义了相同的变量,则以最后一次定义为准。

{$name=”韩灵稚”} #给变量直接赋值,如果该变量原来不存在,自动创建,3.0新特性。

{assign var=foo value=[1,2,3]} #定义普通数组变量

{assign var=foo value=['y'=>'yellow','b'=>'blue']} #定义关联数组

{assign var=foo value=[1,[9,8],3]} #定义数组中的数组

{$foo[]=1} #增加变量数组$foo的一个元素

你好, {$name} #在模板文件中使用

【相关函数】

$smarty->getVariable($variable, $_ptr = null, $search_parents = true,

$error_enable = true) #获得变量,仅限于获得第一种方式的变量

$smarty->getTemplateVars($varname = null, $_ptr = null, $search_parents = true)

#获得变量,可以获得第一种和第三种方式的变量(第三种方式变量scope必须为global或者parent),

如果想获得配置变量参看3.4

4.2 Smarty保留变量

Smarty系统中保留了一些内置变量,可以快速访问相应的变量。但是不能再源php中获得这些变量。

4.2.1、请求访问变量(Request variables)

$smarty.get.变量 #显示通过get方式传过来的指定变量的值。

$smarty.post.变量 #显示通过post方式传过来的指定变量的值。

$smarty.cookies.变量 #显示通过cookie中指定变量的值。

$smarty.server.SERVER_NAME #显示server变量值,phpinfo()中$_SERVER系列变量

$smarty.env.PATH #显示系统环境变量值,phpinfo()中$_ENV系列变量

$smarty.session.变量 #显示session中指定变量的值

$smarty.request.变量 #显示通过post、get、cookie中指定变量的值。

4.2.2、时间访问变量

{$smarty.now} #显示unix系统时间戳,需要变量调节器格式化,参看4.2.4,也可以使使用{time()}

4.2.3、常量访问变量

{$smarty.const._MY_CONST_VAL} #访问php中的常量包括自定义常量和系统常量

4.2.4、{$smarty.capture}

4.2.5、配置访问变量

{$smarty.config.配置变量} #访问配置变量,等同于 #配置变量# 方式

4.2.6、{$smarty.section}, {$smarty.foreach}

参看4.4.3和4.4.4

4.2.7、{$smarty.template} #显示模板路径和名称

4.3 变量操作

4.3.1赋值

{$name = 新值} 比如,{$name=”我的名字叫韩灵稚”} #新值将替代原值,如果原来无该变量,

则创建变量并赋值。配置变量无法重新赋值。

{$name = 表达式} 比如,{$name = 1+2+$foo['bar']} #$foo['bar']的值为1, 变量值为4

{$foo['bar']=1} #给数组的一个元素赋值

{$foo['bar']['blar']=1} #给多维数组的一个元素赋值

{$foo = array(1,2,3,4,5)} #利用php函数创建变量$foo,并赋值。

4.3.2访问

最简单的访问方法是 {$var},配置变量访问是{#configvar#}

数组变量的访问可以是{$array[1][1]},也可以支持{$array.1.1}

对象的访问{$object->method1($x)},也支持对象链,{$object->method1($x)->method2($y)}

字符串与变量的混合输出

{“大家好,我是$name
”} #Smarty可以识别嵌入在双引号中的变量,

只要此变量只包含数字、字母、下划线。

{“大家好,我是`$name[$obj->a]`
”} #中括号[]、句号. 对象相关 -> ,必须将变量用两个`符号括起。

4.3.3变量名变量

与php相同,都支持在变量名称中使用变量,smarty还支持使用表达式。

$foo #一个普通的变量

$foo_{$bar} #变量名中包含变量

$foo_{$x+$y} #变量名中可以支持表达式

$foo_{$bar}_buh_{$blar} #变量名包含多个变量

4.3.4变量调节器

变量调节器主要是对变量进行格式化。

{$var|capitalize} #将变量首字大写

{$var|count_characters:false} #计算变量里的字符数,false为不计算空格。

若变量为数值则为数字和小数点等其他运算符的总和

{$var| cat:var2} #将var2连接到var,若为数值以字符串处理。

{$var| count_paragraphs} #计算变量里的段落数量,已“\n“区分

{$var| count_sentences} #计算变量中句子的数量,不好使

{$var| count_words} #计算变量中单词的数量 已非字母和数字的字符分割统计

{$var| date_format :”%H:%M:%S” } #格式化变量日起,具体参数看chm文档

{$var| default:”no title” } #当变量为空时,为变量提供一个默认值

{$var| escape:url} #对变量值进行转码,具体参数看chm文档

{$var| indent:10:”*”} #对变量指定具体字符进行缩进,若为空格在html中不会显示出来,具体参数看chm文档

{$var| lower} #将变量小写

{$var| nl2br } #将变量中的“\n“转换成”

{$var| regex_replace:”/[\r\t\n]/”:” “} #将变量中的符合正则的内容替换成指定内容

{$var| replace:”Garden”:”Vineyard”} #将变量中要求的内容替换成指定内容

{$var| spacify:”^^”} #将变量字符与字符之间插入指定内容,包括空格

{$var|string_format:”%d”} #将变量中的内容格式化,格式化参数同printf

{$var| strip: “*”} #用一个空格或一个给定字符替换所有重复空格,换行和制表符

{$var| strip_tags} #删除变量中的html标记, 去除<和>标签,包括在<和>之间的任何内容

{$var| truncate:30:”…”:true} #截取变量的到规定的长度,具体参数看chm文档

{$var| upper} #将变量大写

{$var| wordwrap:30:”\n”:true} #规定指定的长度强制换行,具体参数看chm文档

修改器可以复合组合。

{$articleTitle|lower|spacify|truncate:30:”. . .”}

设置默认变量调节器

$smarty->getDefault_modifiers() #默认为空数组

$smarty->setDefault_modifiers(array(‘spacify:”^^”’,’capitalize’) #设置变量的默认调节器,必须用array

{name} #模板变量name自动加入上面两个调节器

同时也可以定义自己的调节器,详情请参考6.7.4和6.8.4

4.2.5变量作用域(未写)

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Smarty3.1.4基础
下一篇:Smarty语法基础篇(二)

什么是smarty?

smarty 模板继承

语法-PHP基础教程

smarty语法高级篇

选择城市和中心
黑龙江省

吉林省

河北省

贵州省

云南省

广西省

海南省