{$smarty}保留变量不需要从PHP脚本中分配,是可以在模板中直接访问的数组类型变量,通常被用于访问一些特殊的模板变量。例如,直接在模板中访问页面请求变量、获取访问模板时的时间邮戳、直接访问PHP中的常量、从配置文件中读取变量等。

该保留变量中的部分访问介绍如下。

1.在模板中访问页面请求变量

我们可以在PHP脚本中,通过超级全局数组$_GET、$_POST、$_REQUEST获取在客户端以

不同方法提交给服务器的数据,也可以通过$_COOKIE或$_SESSION在多个脚本之间跟踪

变量,或是通过$_ENV和$_SERVER获取系统环境变量。如果在模板中需要这些数组,可

以调用Smarty对象中的assign()方法分配给模板。但在Smarty模板中,直接就可以通

过{$smarty}保留变量访问这些页面请求变量。在模板中使用的示例如下所示:

{$smarty.get.page}             {* PHP方式:$_GET["page"] *}

{$smarty.post.page}            {* PHP方式:$_POST["page"] *}

{$smarty.cookies.username}     {* PHP方式:$_COOKIE["username"] *}

{$smarty.session.id}           {* PHP方式:$_SESSION["id"] *}

{$smarty.server.SERVER_NAME}   {* PHP方式:$_SERVER["SERVER_NAME"] *}

{$smarty.env.PATH}             {* PHP方式:$_ENV["PATH"]*}

{$smarty.request.username}     {* PHP方式:$_REQUEST["username"] *}

2.在模板中访问PHP中的变量

在PHP脚本中有系统常量和自定义常量两种,同样这两种常量在Smarty模板中也可以被

访问,而且不需要从PHP中分配,只要通过{$smarty}保留变量就可以直接输出常量的

值。在模板中输出常量的示例如下所示:

{$smarty.const._MY_CONST_VAL} {* 输出PHP脚本中自定义的常量 *}

{$smarty.const.__FILE__}     {* 通过保留变量数组直接输出系统常量 *}

随机推荐

  1. JavaScript:编程改变文本样式

    <!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" Content=&q ...

  2. 使用Jmeter监测服务器cpu、内存等性能

    jmeter中可以监控服务器的CPU和内存使用情况,但是需要安装一些插件还需要在被监测服务器上开启服务. 1.下载JMeterPlugins-Standard-1.4.0.zip插件.下载后将JMet ...

  3. idea使用心得(4)-踩过的坑

    1.非法的表达式开始 / 需要';' / 未结束的字符串文字  表现形式:    原因/解决:       这个一定是文件编码问题:依次检查setting中的file Encodings 中的IDE ...

  4. JMeter学习-039-JMeter 3.0 生成 dashboard HTML 报告图表中文乱码

    近期,经常有人问 JMeter 3.0 使用时,生成的 HTML 报告图表中的中文乱码问题.在此,简略的说一下解决的方法. 编码相关信息如下: 1.查看控制 csv.xml 等配置结果文件生成.读取的 ...

  5. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  6. Python之路-python(css、JavaScript)

    css JavaScript 一.CSS 分层: position: fixed;(固定到页面的具体位置) 例如:返回顶部 <!DOCTYPE html> <html lang=&q ...

  7. PHP无限极分类,多种方法|很简单,这里说的很详细,其它地方说的很不好懂

    当你学习php无限极分类的时候,大家都觉得一个字"难"我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究.   到网上一搜php无限极分类,很多,但好多都是一 ...

  8. ASP.NET Core – 2300% More Requests Served Per Second

    http://www.ageofascent.com/asp-net-core-exeeds-1-15-million-requests-12-6-gbps/ ASP.NET Core – Excee ...

  9. sys.argv

    import sys i=0 print len(sys.argv) while i < len(sys.argv): print 'sys.argv[%d]:%s' %(i,sys.argv[ ...

  10. C# 连接Oracle ,免安装客户端

    在.NET平台下开发Oracle应用的小伙伴们肯定都知道一方面做Oracle开发和实施相比SqlServer要安装Oracle客户端(XCopy.自己提取相关文件也有一定复杂性),另一方面相比JAVA ...