最近在做一个优化工作,其中一部分把原有的程序和 html 混合使用处调整为程序与 tpl 分离方式加载,发现 smarty 常用的 display 方法不支持只返回内容而不显示的控制,查了一下 smarty 的类,终于找到了解决方法: $o_smarty = new c_use_smarty(); //smarty 的模板加载如果需要显示就是常用的 $o_smarty->display('ajax_common.tpl'); //如果不需要显示而只需要模板加载的内容(返回生成的模板内容字符串)可以使用 $infoString = $o_smarty->fetch('ajax_common.tpl', null, null, false); //其实 $o_smarty->display 也就是封装了一层 $o_smarty->fetch('ajax_common.tpl', null, null, true); //真正控制模板展示的是 $o_smarty->fetch() 方法。