使用$smarty->display()时是没有办法将页面以字符串的形式返回的。
查看smarty源码发现display其实是调用的$smarty->fetch(),发现一个$diaplay参数,true时打印页面,false时返回字符串。直接贴源码(...为省略的逻辑代码)
public function fetch($template = null, $cache_id = null, $compile_id = null, $parent = null, $display = false, ...)
{
...
// display or fetch
if ($display) {
...
echo $_output;
return;
} else {
...
return $_output;
}
}
所以使用如下语法可以返回页面内容
$smarty->fetch('xxx');