ThinkPHP 3.1快速入门:变量输出

在上一章我们了解了如何通过assign方法把变量赋值到模板变量,这一篇我们来详细了解下如何在模板中使用标签输出模板变量。
注意,本篇的描述仅针对使用内部模板引擎的情况,如果你使用了Smarty或者其他模板引擎,请参考其相关的变量输出语法。

变量输出

变量输出的方法很简单,例如,在控制器中我们给模板变量赋值:

$">name = '
ThinkPHP';$this->assign('name',$name);$this->display();

然后就可以在模板中使用:

Hello,{$name}!

模板编译后的结果就是:

Hello,<?php echo($name);?>!

这样,运行的时候就会在模板中显示:

Hello,ThinkPHP!

注意模板标签的{和$之间不能有任何的空格,否则标签无效。所以,下面的标签

Hello,{ $name}!

将不会正常输出name变量,而是直接保持不变输出:

Hello,{ $name}!

普通标签默认开始标记是 {,结束标记是 }。也可以通过设置TMPL_L_DELIM和TMPL_R_DELIM进行更改。例如,我们在项目配置文件中定义:

'TMPL_L_DELIM'=>'<{','TMPL_R_DELIM'=>'}>',

那么,上面的变量输出标签就应该改成:

Hello,<{$name}>!

后面的内容我们都以默认的标签定义来说明。
模板标签的变量输出根据变量类型有所区别,刚才我们输出的是字符串变量,如果是数组变量,

$data['name'] = 'ThinkPHP';$data['email'] = 'thinkphp@qq.com';$this->assign('data',$data);

那么,在模板中我们可以用下面的方式输出:

Name:{$data.name}Email:{$data.email}

或者用下面的方式也是有效:

Name:{$data['name']}Email:{$data['email']}

当我们要输出多维数组的时候,往往要采用后面一种方式。
如果data变量是一个对象(并且包含有name和email两个属性),那么可以用下面的方式输出:

Name:{$data:name}Email:{$data:email}

或者

Name:{$data->name}Email:{$data->email}

系统变量

普通的模板变量需要首先赋值后才能在模板中输出,但是系统变量则不需要,可以直接在模板中输出,系统变量的输出通常以{$Think 打头,例如:

{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量{$Think.session.
user_id} // 输出$_SESSION['user_id']变量{$Think.get.pageNumber} // 输出$_GET['pageNumber']变量{$Think.cookie.name}  // 输出$_COOKIE['name']变量

支持输出$_SERVER、$_ENV、 $_POST、 $_GET、 $_REQUEST、$_SESSION和 $_COOKIE变量。
还可以输出常量

{$Think.const.MODULE_NAME}

或者直接使用

{$Think.MODULE_NAME}

输出配置参数使用:

{$Think.config.db_charset}{$Think.config.url_model}

输出语言变量可以使用:

{$Think.lang.page_error}{$Think.lang.var_error}

时间: 2024-11-01 06:46:09

ThinkPHP 3.1快速入门:变量输出的相关文章

ThinkPHP 3.1快速入门:连贯操作

上一篇我们详细描述了查询语言的用法,但是查询语言仅仅解决了查询或者操作条件的问题,更多的配合还需要使用模型提供的连贯操作方法. 介绍 连贯操作可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作,也是ThinkPHP的ORM中的一个亮点.使用也比较简单, 假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下: $User->where('status=1')->order('create_time')->limit(1

ThinkPHP 3.1快速入门:基础

ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持. 目录结构 ThinkPHP最新版本可以在官方网站(http://thinkphp.cn/down/framework.html)或者Github(https://github.com/liu21st/thinkphp/do

ThinkPHP 3.1快速入门:变量

本篇我们来学习如何在ThinkPHP中使用变量和对变量进行过滤.在Webhttp://www.aliyun.com/zixun/aggregation/17799.html">开发过程中,我们经常需要获取系统变量或者用户提交的数据,这些变量数据错综复杂,而且一不小心就容易引起安全隐患,但是如果利用好ThinkPHP提供的变量获取功能,就可以轻松的获取和驾驭变量了. 获取变量 首先,我们来谈下如何获取变量.第一种方式:传统获取方式你仍然可以在开发过程中使用传统方式获取各种系统变量,例如: $

ThinkPHP 3.1快速入门:IP地址定位

在WEB应用中,根据IP地址定位和记录相关访问日志也是非常常见的需求,在ThinkPHP中你可以轻松的实现IP地址获取和定位. 获取扩展类库 可以在官网的http://www.thinkphp.cn/extend/223.html下载IP定位扩展类库,或者下载扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含该扩展类了.如果是单独下载的上传类库,把解压后的IpLocation.class.php 放入ThinkPHP/Extend/Library/O

ThinkPHP 3.1快速入门:数据分页

我们已经了解了如何进行数据查询,今天我们来学习下如何对数据进行分页以及显示. 获取分页类 ThinkPHP提供了数据分页的扩展类库Page,可以在http://www.thinkphp.cn/extend/241.html下载,或者下载官方的完整扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含分页扩展类了.把解压后的Page.class.php放入ThinkPHP/Extend/Library/ORG/Util/(如果没有请手动创建)目录下面.当然

ThinkPHP 3.1快速入门:模板布局

ThinkPHP的模板引擎内置了布局模板功能支持,可以方便的实现模板布局以及布局嵌套功能.有三种布局模板的支持方式: 第一种方式:全局配置方式 这种方式仅需在项目配置文件中添加相关的布局模板配置,就可以简单实现模板布局功能,比较适用于全站使用相同布局的情况,需要配置开启LAYOUT_ON 参数(默认不开启),并且设置布局入口文件名LAYOUT_NAME(默认为layout). 'LAYOUT_ON'=>true, &http://www.aliyun.com/zixun/aggregatio

ThinkPHP 3.1快速入门:多语言

ThinkPHP支持多语言,采用的是语言文件的方式.如果你的应用涉及到多个http://www.aliyun.com/zixun/aggregation/18713.html">语言版本和国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. 启用多语言 要启用多语言功能,首先要下载多语言行为扩展(http://www.thinkphp.cn/extend/186.html),或者下载官方的完整扩展包(http://www.thinkphp.cn/down/

ThinkPHP 3.1快速入门:行为

行为(Behavior)是ThinkPHP扩展机制中比较关键的一项扩展,行为既可以独立调用,也可以绑定到某个标签中进行侦听,官方提出的CBD模式中行为也占了主要的地位,可见行为在ThinkPHP框架中意义非凡.这里指的行为是一个比较抽象的概念,你可以想象成在应用执行过程中的一个动作或者处理,在框架的执行流程中,各个位置都可以有行为产生,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测.多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第

ThinkPHP 3.1快速入门:控制器高级特性

ThinkPHP的控制器层由核心控制器和业务控制器组成,核心控制器由系统内部的App类完成,负责应用(包括模块和操作)的调度控制,包括HTTP请求拦截和转发.加载配置等,业务控制器则由用户定义的http://www.aliyun.com/zixun/aggregation/16339.html">Action类或者其他控制器类完成.我们通过前面的学习,已经了解了基本的控制器用法,这一篇我们来讲述下控制器的一些特性和高级用法,来探索ThinkPHP控制器的神秘外衣. Action参数绑定 在