在模板中輸出變量的方法很簡單,例如,在控制器的方法中我們給模板變量賦值:
~~~
$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開發
- 通用請求