<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 快速入門(八):變量輸出 在上一章我們了解了如何通過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} ~~~ ## 使用函數 我們往往需要對模板輸出變量使用函數,可以使用: ~~~ {$data.name|md5} ~~~ 編譯后的結果是: ~~~ <?php echo (md5($data['name'])); ?> ~~~ 如果函數有多個參數需要調用,則使用: ~~~ {$create_time|date="y-m-d",###} ~~~ 表示date函數傳入兩個參數,每個參數用逗號分割,這里第一個參數是y-m-d,第二個參數是前面要輸出的create_time變量,因為該變量是第二個參數,因此需要用`###`標識變量位置,編譯后的結果是: ~~~ <?php echo (date("y-m-d",$create_time)); ?> ~~~ 如果前面輸出的變量在后面定義的函數的第一個參數,則可以直接使用: ~~~ {$data.name|substr=0,3} ~~~ 表示輸出 ~~~ <?php echo (substr($data['name'],0,3)); ?> ~~~ 雖然也可以使用: ~~~ {$data.name|substr=###,0,3} ~~~ 但完全沒用這個必要。 還可以支持多個函數過濾,多個函數之間用“|”分割即可,例如: ~~~ {$name|md5|strtoupper|substr=0,3} ~~~ 編譯后的結果是: ~~~ <?php echo (substr(strtoupper(md5($name)),0,3)); ?> ~~~ 函數會按照從左到右的順序依次調用。 如果你覺得這樣寫起來比較麻煩,也可以直接這樣寫: ~~~ {:substr(strtoupper(md5($name)),0,3)} ~~~ ## 默認值 我們可以給變量輸出提供默認值,例如: ~~~ {$user.nickname|default="這家伙很懶,什么也沒留下"} ~~~ 對系統變量依然可以支持默認值輸出,例如: ~~~ {$Think.get.name|default="名稱為空"} ~~~ 默認值和函數可以同時使用,例如: ~~~ {$Think.get.name|getName|default="名稱為空"} ~~~ ## 使用運算符 我們可以對模板輸出使用運算符,包括對“+”“ –” “*” “/”和“%”的支持。 例如: |運算符 |使用示例| |-------|-------| |+ |{$a+$b}| |- |{$a-$b}| |* |{$a*$b}| |/ |{$a/$b}| |% |{$a%$b}| |++ |{$a++} 或 {++$a}| |-- |{$a--} 或 {--$a}| |綜合運算| {$a+$b*10+$c}| 在使用運算符的時候,不再支持點語法和常規的函數用法,例如: ~~~ {$user.score+10} //錯誤的 {$user['score']+10} //正確的 {$user['score']*$user['level']} //正確的 {$user['score']|myFun*10} //錯誤的 {$user['score']+myFun($user['level'])} //正確的 ~~~ ## 三元運算 模板可以支持三元運算符,例如: ~~~ {$status?'正常':'錯誤'} {$info['status']?$info['msg']:$info['error']} ~~~ 三元運算符中暫時不支持點語法,因此下面的寫法是錯誤的: ~~~ {$info.status?$info.msg:$info.error} ~~~ ## 總結 通過本篇的學習,我們掌握了如何在模板文件中輸出變量和使用函數、默認值和運算符,下一篇我們將會了解如何進行模板變量的循環、判斷等控制輸出,以及導入其他公共模板。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看