在模板中输出变量的方法很简单,例如,在控制器的方法中我们给模板变量赋值:
~~~
$this = Template();
// 模板变量赋值
$this->assign('name', 'CMSPRO');
// 读取模板文件渲染输出
$this->fetch('index/tm2');
~~~
然后就可以在模板中使用:
~~~
Hello,{$name}!
~~~
模板编译后的结果就是:
~~~
Hello,<?php echo htmlentities($name);?>!
~~~
这样,运行的时候就会在模板中显示:`Hello,CMSPRO!`
注意模板标签的`{`和`$`之间不能有任何的空格,否则标签无效。所以,下面的标签
~~~
Hello,{ $name}!
~~~
将不会正常输出name变量,而是直接保持不变输出:`Hello,{ $name}!`
模板标签的变量输出根据变量类型有所区别,刚才我们输出的是字符串变量,如果是数组变量,
~~~
$data['name'] = 'CMSPRO';
$data['email'] = 'cmspro@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}
~~~
也可以直接调用对象的常量或者方法
~~~
常量:{$data::CONST_NAME}
方法:{$data->fun()}
~~~
> 如果要输出模型数据的话,因为模型支持`ArrayAccess`,所以使用数组或者对象方式都可以输出。
## 使用默认值
我们可以给变量输出提供默认值,例如:
~~~
{$user.nickname|default="这家伙很懒,什么也没留下"}
~~~
对系统变量依然可以支持默认值输出,例如:
~~~
{$_GET.name|default="名称为空"}
~~~
默认值和函数可以同时使用,例如:
~~~
{$_GET.name|函数|default="名称为空"}
~~~
## 系统变量输出
普通的模板变量需要首先赋值后才能在模板中输出,但是系统变量则不需要,可以直接在模板中输出例如:
~~~
{$CmsPro.server.SCRIPT_NAME} // 输出$_SERVER['SCRIPT_NAME']变量
{$CmsPro.session.user.id} // 输出$_SESSION['use']['id']变量
{$CmsPro.get.page} // 输出$_GET['page']变量
{$CmsPro.cookie.name} // 输出$_COOKIE['name']变量
~~~
支持输出`$_SERVER`、`$_ENV`、`$_POST`、`$_GET`、`$_REQUEST`、`$_SESSION`和`$_COOKIE`变量。
## 常量输出
还可以输出常量
~~~
{$CmsPro.const.PHP_VERSION}
~~~
或者直接使用
~~~
{$CmsPro.PHP_VERSION}
~~~
## 配置输出
输出配置参数使用:
~~~
{$CmsPro.DB_HOST}
{$CmsPro.DB_NAME}
~~~
## 请求变量
模板支持直接输出`Request`请求对象的方法参数,用法如下:
> ### $Request.方法名.参数
例如:
~~~
{$Request.get.id}
{$Request.param.name}
~~~
以`$Request.`开头的变量输出会认为是系统请求对象的参数输出。
> 支持`Request`类的大部分方法,但只支持方法的第一个参数。
下面都是有效的输出:
~~~
// 调用Request对象的get方法 传入参数为id
{$Request.get.id}
// 调用Request对象的param方法 传入参数为name
{$Request.param.name}
// 调用Request对象的param方法 传入参数为user.nickname
{$Request.param.user.nickname}
// 调用Request对象的root方法
{$Request.root}
// 调用Request对象的root方法,并且传入参数true
{$Request.root.true}
// 调用Request对象的path方法
{$Request.path}
// 调用Request对象的module方法
{$Request.module}
// 调用Request对象的controller方法
{$Request.controller}
// 调用Request对象的action方法
{$Request.action}
// 调用Request对象的ext方法
{$Request.ext}
// 调用Request对象的host方法
{$Request.host}
// 调用Request对象的ip方法
{$Request.ip}
// 调用Request对象的header方法
{$Request.header.accept-encoding}
~~~
- 关于CMSPRO
- 安装使用
- 首次使用
- 功能使用
- 系统后台
- 系统
- 系统配置
- 开发使用
- 基础学习
- php如何修改文件创建时间
- 类方法
- 系统框架
- 系统入口框架
- URL处理
- 自动附加封装类、函数入口
- 内置应用
- GET与POST
- 字符控制
- 多语言使用
- 数据库使用
- 页面跳转
- 数组控制
- 时间相关
- 文件操作
- 获取系统设置的应用目录
- IP获取与解析
- 数据分页
- 内置插件
- 短信发送
- 信息模板
- 消息操作
- 消息操作(旧)
- 资金操作
- 优惠券
- 积分操作
- 服务器接口
- 宝塔接口
- 域名接口
- 西部数据
- whois查询
- 事件管理器
- 规则管理器
- 电子邮件
- 常用代码
- 数据获取与分页
- 模型自动构建表单
- 排版布局
- 常用样式
- 编辑表单
- tab选项卡
- JS相关
- 插件
- 钩子
- 高级进阶
- 消息和模板组合使用
- API接口
- 充值支付
- 积分充值兑换
- 短信验证码
- 邮箱验证码
- 微信消息模板
- 获取货币信息
- 获取积分信息
- 商品操作
- 信息反馈
- LayIM相关
- 自定义一级URL
- 自定义功能
- 用户中心
- 网站管理
- 模板引擎v2
- 基础学习
- 变量输出
- 使用函数
- 运算符
- 原样输出
- 模板注释
- 模板继承
- 包含文件
- 内置标签
- 循环标签
- 比较标签
- 条件判断
- 资源文件加载
- 标签嵌套
- 原生PHP
- 定义标签
- 功能应用
- 站点统计
- 数据列表
- 单条数据
- 功能动作
- 账户资金
- 账户积分
- 网站导航
- 从零使用
- 结构了解
- 基础工作
- 模板引擎v1
- 模板标签
- 导航菜单
- 获取数据列表
- 获取单条数据
- 广告以及连接
- if判断
- 判断是否登录
- 判断系统变量
- 自定义判断
- 常规判断
- 模板表单
- 高级使用
- 前后分离v1
- 通用
- 支付
- 积分
- 论坛
- 下载
- 微信
- 云服务SDK开发
- 通用请求