ThinkPHP 3.1快速入門:變數輸出

來源:互聯網
上載者:User
關鍵字 快速入門 ThinkPHP 變數輸出

在上一章我們瞭解了如何通過assign方法把變數賦值到範本變數,這一篇我們來詳細瞭解下如何在範本中使用標籤輸出範本變數。
注意,本篇的描述僅針對使用內部範本引擎的情況,如果你使用了Smarty或者其他範本引擎,請參考其相關的變數輸出語法。

變數輸出

變數輸出的方法很簡單,例如,在控制器中我們給範本變數賦值:

$HTTP://www.aliyun.com/zixun/aggregation/11696.html">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}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.