WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢(qián)
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營(yíng)銷
- 虛擬主機(jī)管理系統(tǒng)
- 開(kāi)放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
ThinkPHP-模板指南-變量輸出
導(dǎo)航:返回上一頁(yè)
我們已經(jīng)知道了在Action中使用assign方法可以給模板變量賦值,賦值后怎么在模板文件中輸出變量的值呢?如果我們?cè)贏ction中賦值了一個(gè)name模板變量:
PHP代碼
$name = 'ThinkPHP'; $this->assign('name',$name);
使用內(nèi)置的模板引擎輸出變量,只需要在模版文件使用:
模板編譯后的結(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í)屬性