大家都知道在thinkphp里面,我們是通過在控制器里面給模板分配變量,然后在模板里面通過標(biāo)簽的方式來獲取變量,假設(shè)有一個(gè)變量為$name,那么我們在模板里面就應(yīng)該是通過。
{$name}的方式來獲取變量值,在這里問題就出來了,假設(shè)我們的這個(gè)模板里面還有其他的JS,CSS,比如我在模板里面還有這樣一段JS代碼如下:
<script type="text/javascript"> Var str=6; If(str>=6){ Alert('test'); }else{ Alert(''); } </script>
如果模板里面有上述一段這樣一段JS代碼的話,那thinkphp解析模板的時(shí)候就會報(bào)錯(cuò),因?yàn)樵谶@段JS里面也出現(xiàn)了{(lán)}定界符,thinkphp就會認(rèn)為{}里面的也是一個(gè)模板標(biāo)簽,然后去解析它,但它其實(shí)只是一段JS代碼,所以就報(bào)錯(cuò)了。
當(dāng)我們碰到這種情況應(yīng)該怎么處理呢?下面我們就來看一下thinkphp中修改定界符的方法:
在thinkphp里面很多修改系統(tǒng)默認(rèn)東西的操作都是通過配置文件來實(shí)現(xiàn)的,修改標(biāo)簽定界符也是通過在配置文件里面來指定的,我們來看一下具體應(yīng)該怎么做,在config.php里面增加如下代碼:
<?php return array( 'TMPL_L_DELIM'=>'<{', 'TMPL_R_DELIM'=>'}>', ); ?>
通過上述代碼我們也可以看出,標(biāo)簽定界符已經(jīng)改成了<{}>,也就是說如果我們現(xiàn)在在控制器里面分配一個(gè)變量$this->assign(‘name’,$name),這個(gè)時(shí)候我們在模板里面就應(yīng)該這樣寫了<{$name}>,這樣就不會和JS或者CSS沖突了。
推薦教程:《TP5》