ThinkPHP5.0默认模板定界符为{和},可自定义为{{}}、等以避免与Vue等前端框架冲突;需在config.php的template配置中修改tpl_begin/tpl_end,并清空runtime缓存生效。

ThinkPHP5.0 默认使用 { 和 } 作为模板标签的开始与结束标记,但你可以按项目需要自定义成其他符号,比如 {{ 和 }} 或 和 %>,避免和前端框架(如 Vue、Angular)冲突。
模板标签定界符配置位置
在应用的全局配置文件中设置,通常是 application/config.php 或模块级配置 application/index/config.php,修改 template 配置项下的 tpl_begin 和 tpl_end 参数:
'template' => [
'type' => 'Think',
'view_path' => './template/',
'view_suffix' => 'html',
'view_depr' => DS,
'tpl_begin' => '{{', // 自定义开始标记
'tpl_end' => '}}', // 自定义结束标记
'taglib_begin' => '{', // 标签库标记一般保持默认
'taglib_end' => '}',
],
⚠️ 注意:
tpl_begin/tpl_end只影响普通变量输出、条件判断、循环等语法(如{{ $name }}、{{ if $flag }}...{{ /if }}),而taglib_begin/taglib_end控制标签库语法(如{volist name="list" id="vo"}...{/volist}),两者可不同。
生效前提与验证方式
- 修改后需清空
runtime/cache/和runtime/template/目录,否则旧缓存仍按原定界符解析; - 模板中写法要同步更新,例如原
{ $name }需改为{{ $name }}; - 若只希望某个控制器或操作临时切换,可在调用前用
engine()动态设置(较少用):$this->engine('think', ['tpl_begin' => ' '%>']); return $this->fetch();
常见适配场景
- 与 Vue 共存:Vue 默认也用
{{ }},此时建议 ThinkPHP 改用或{: }风格; - 与 Laravel Blade 混合开发:可统一为
@{ }(需配合自定义引擎或正则预处理); - 团队规范要求:统一使用
[[ ]]提高可读性,只要前后一致即可。
定界符改动不涉及底层引擎逻辑,仅是字符串匹配规则替换,配置正确后即可立即生效。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











