W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
{function}
用于在模板內(nèi)創(chuàng)建函數(shù),這些函數(shù)可以像插件函數(shù)一樣調(diào)用。 用這個(gè)方式來(lái)代替寫插件來(lái)顯示內(nèi)容,更具有可管理性。 這也可以簡(jiǎn)化數(shù)據(jù)的復(fù)雜度,如多層結(jié)構(gòu)的菜單。
模板函數(shù)是全局的。因?yàn)镾marty的編譯器是單次編譯的,所以必須用{call}
標(biāo)簽來(lái)調(diào)用定義在當(dāng)前模板的函數(shù)。 或者你可以直接使用函數(shù),如{funcname ...}
。
{function}
標(biāo)簽必須設(shè)置name
屬性, 也就是模板函數(shù)的名稱。 該名稱可以用于調(diào)用模板函數(shù)。
可以按屬性的方式傳遞給模板函數(shù)變量默認(rèn)值。 和PHP函數(shù)定義一樣,你只可以使用標(biāo)量值作為默認(rèn)。 默認(rèn)值可以被覆蓋,當(dāng)模板函數(shù)被調(diào)用的時(shí)候。
你可以在調(diào)用模板函數(shù)內(nèi)使用當(dāng)前模板的全部變量,在模板內(nèi)創(chuàng)建或修改的變量就不能被模板函數(shù)內(nèi)訪問(wèn)了。
屬性:
參數(shù)名稱 | 類型 | 必選參數(shù) | 默認(rèn)值 | 說(shuō)明 |
---|---|---|---|---|
name | string | Yes | n/a | 模板函數(shù)的名稱 |
[var ...] | [var type] | No | n/a | 模板函數(shù)參數(shù)的默認(rèn)值 |
當(dāng)模板函數(shù)被調(diào)用時(shí),你可以傳遞任意數(shù)量的參數(shù)給它。除非你需要默認(rèn)值,否則不要在 {funcname ...}
標(biāo)簽內(nèi)定義參數(shù)。 默認(rèn)值必須是標(biāo)量而且不是變量,變量必須在函數(shù)調(diào)用時(shí)才能傳遞。
Example 7.43. 遞歸菜單 {function} 例子
{* define the function *} {function name=menu level=0} {function menu level=0} {* short-hand *} <ul class="level{$level}"> {foreach $data as $entry} {if is_array($entry)} <li>{$entry@key}</li> {menu data=$entry level=$level+1} {else} <li>{$entry}</li> {/if} {/foreach} </ul> {/function} {* create an array to demonstrate *} {$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' => ['item3-3-1','item3-3-2']],'item4']} {* run the array through the function *} {menu data=$menu}
輸出:
* item1 * item2 * item3 o item3-1 o item3-2 o item3-3 + item3-3-1 + item3-3-2 * item4
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: