久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

ThinkPHP-模板指南-變量輸出

來(lái)自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航:返回上一頁(yè)


我們已經(jīng)知道了在Action中使用assign方法可以給模板變量賦值,賦值后怎么在模板文件中輸出變量的值呢?如果我們?cè)贏ction中賦值了一個(gè)name模板變量:

PHP代碼

$name = 'ThinkPHP';    

$this->assign('name',$name);    

使用內(nèi)置的模板引擎輸出變量,只需要在模版文件使用:

XML/HTML代碼:{$name}

模板編譯后的結(jié)果就是

XML/HTML代碼

<?php echo($name);?>   

最后運(yùn)行的時(shí)候就可以在標(biāo)簽位置顯示ThinkPHP的輸出結(jié)果。注意模板標(biāo)簽的{和$之間不能有任何的空格,否則標(biāo)簽無(wú)效。普通標(biāo)簽?zāi)J(rèn)開(kāi)始標(biāo)記是 {,結(jié)束標(biāo)記是 }。也可以通過(guò)設(shè)置TMPL_L_DELIM和TMPL_R_DELIM進(jìn)行更改。例如,我們?cè)陧?xiàng)目配置文件中定義:

PHP代碼

'TMPL_L_DELIM'=>'<{',    

'TMPL_R_DELIM'=>'}>',    

那么,上面的變量輸出標(biāo)簽就應(yīng)該改成:

XML/HTML代碼: <{$name}>

后面的內(nèi)容我們都以默認(rèn)的標(biāo)簽定義來(lái)說(shuō)明。assign方法里面的第一個(gè)參數(shù)才是模板文件中使用的變量名稱。如果改成下面的代碼:

PHP代碼

$name = 'ThinkPHP';    

$this->assign('name2',$name);   

再使用{$name} 輸出就無(wú)效了,必須使用 {$name2} 才能輸出模板變量的值了。如果我們需要把一個(gè)用戶數(shù)據(jù)對(duì)象賦值給模板變量:

PHP代碼

$User = M('name');    

$user = $User->find(1);    

$this->assign('user',$user);   

也就是說(shuō)$user其實(shí)是一個(gè)數(shù)組變量,我們可以使用下面的方式來(lái)輸出相關(guān)的值:XML/HTML代碼

{$user['name']} // 輸出用戶的名稱    

{$user['email']} // 輸出用戶的email地址   

如果$user是一個(gè)對(duì)象而不是數(shù)組的話.

PHP代碼

$User = M('name');    

$User->find(1);    

$this->assign('user',$User);    

可以使用下面的方式輸出相關(guān)的屬性值:    

{$user:name} // 輸出用戶的名稱    

{$user:email}   // 輸出用戶的email地址   

為了方便模板定義,還可以支持點(diǎn)語(yǔ)法.例如,上面的XML/HTML代碼

{$user['name']} // 輸出用戶的名稱    

{$user['email']} // 輸出用戶的email地址   

可以改成 XML/HTML代碼

{$user.name}    

{$user.email}   

因?yàn)辄c(diǎn)語(yǔ)法默認(rèn)的輸出是數(shù)組方式,所以上面兩種方式是在沒(méi)有配置的情況下是等效的。我們可以通過(guò)配置TMPL_VAR_IDENTIFY參數(shù)來(lái)決定點(diǎn)語(yǔ)法的輸出效果,以下面的輸出為例:{$user.name}

  • 如果TMPL_VAR_IDENTIFY設(shè)置為array,那么{$user.name}和{$user['name']}等效,也就是輸出數(shù)組變量。
  • 如果TMPL_VAR_IDENTIFY設(shè)置為obj,那么{$user.name}和{$user:name}等效,也就是輸出對(duì)象的屬性。
  • 如果TMPL_VAR_IDENTIFY留空的話,系統(tǒng)會(huì)自動(dòng)判斷要輸出的變量是數(shù)組還是對(duì)象,這種方式會(huì)一定程度上影響效率,而且只支持二維數(shù)組和兩級(jí)對(duì)象屬性。
  • 如果是多維數(shù)組或者多層對(duì)象屬性的輸出,可以使用下面的定義方式:

XML/HTML代碼

{$user.sub.name} // 使用點(diǎn)語(yǔ)法輸出

或者使用

XML/HTML代碼

{$user['sub']['name']} // 輸出三維數(shù)組的值    

{$user:sub:name} // 輸出對(duì)象的多級(jí)屬性