2012-03-09 30 views
1

比方說,我有以下內容的Smarty的模板文件:Smarty:有沒有辦法檢測是否所有預期的變量都傳遞給了模板?

<div> 
     var 1: {$var1}<br> 
     var 2: {$var2} 
</div> 

和我做了以下任務,我忘了分配VAR2:

$smarty->assign("var1", "foo"); 
$smarty->display($tpl_file); 

什麼是檢測的最佳方式並非所有要求的變量 都被分配了?

謝謝。

+0

的部分代碼丟失,你實際上是(想到)檢測到。 – hakre 2012-03-09 00:16:04

+0

該代碼是什麼? – Pierre 2012-03-09 00:17:26

+0

這樣做:知道需要哪些變量,檢查是否有任何變量已被分配。另請參見[如何檢查是否已分配Smarty變量?](http://stackoverflow.com/questions/350129/how-do-i-check-to-see-if-a-smarty-變量已經分配) – hakre 2012-03-09 00:20:10

回答

1

Smarty的本身不具備這樣的功能,你可以試着寫一些自己喜歡:

preg_match_all('/{\$(.*?)}/', file_get_contents('templates/index.tpl'), $vars, 2); 

foreach ($vars as $v) 
{ 
    echo $v[1]."<br>"; 
} 

從這裏摘自:http://smarty.incutio.com/?page=SmartyFrequentlyAskedQuestions#project-10

+1

我將正則表達式更改爲'/ {\ $([a-zA-Z0-9 _] +)/'來處理像{$ var:htmlescape}這樣的情況,但對我而言 – Pierre 2012-03-09 00:45:48

相關問題