大家都知道在thinkphp里面,我们是通过在控制器里面给模板分配变量,然后在模板里面通过标签的方式来获取变量,假设有一个变量为$name,那么我们在模板里面就应该是通过。
{$name}的方式来获取变量值,在这里问题就出来了,假设我们的这个模板里面还有其他的JS,CSS,比如我在模板里面还有这样一段JS代码如下:
<script type="text/JavaScript"> Var str=6; If(str>=6){ Alert('test'); }else{ Alert(''); } </script>
如果模板里面有上述一段这样一段JS代码的话,那thinkphp解析模板的时候就会报错,因为在这段JS里面也出现了{}定界符,thinkphp就会认为{}里面的也是一个模板标签,然后去解析它,但它其实只是一段JS代码,所以就报错了。
当我们碰到这种情况应该怎么处理呢?下面我们就来看一下thinkphp中修改定界符的方法:
在thinkphp里面很多修改系统默认东西的操作都是通过配置文件来实现的,修改标签定界符也是通过在配置文件里面来指定的,我们来看一下具体应该怎么做,在config.php里面增加如下代码:
<?php return array( 'TMPL_L_DELIM'=>'<{', 'TMPL_R_DELIM'=>'}>', ); ?>
通过上述代码我们也可以看出,标签定界符已经改成了<{}>,也就是说如果我们现在在控制器里面分配一个变量$this->assign(‘name’,$name),这个时候我们在模板里面就应该这样写了<{$name}>,这样就不会和JS或者CSS冲突了。