Php 包含在ob_start()之后,不会发生任何事情

Php 包含在ob_start()之后,不会发生任何事情,php,model-view-controller,view,render,Php,Model View Controller,View,Render,我试图用一个函数呈现我的视图 但是如果启动ob_clean(),之后的所有代码都不会影响某些内容。如果我在ob_clean()之前包含,我会看到模板 public function render($template, $data = array()) { if (!empty($data)) { extract($data); } $templatePath = TEMPLATE_DIR . $template . '.tpl'; ob_s

我试图用一个函数呈现我的视图

但是如果启动
ob_clean()
,之后的所有代码都不会影响某些内容。如果我在
ob_clean()
之前包含,我会看到模板

public function render($template, $data = array())
{
    if (!empty($data))
    {
        extract($data);
    }
    $templatePath = TEMPLATE_DIR . $template . '.tpl';
    ob_start();
    if (!is_file($templatePath))
    {
        return 'No template found!';
    }
    include $templatePath;
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}

尝试将
return$content
替换为
echo$content

并不能解决您的问题,但您可以使用它,您不需要分别调用
ob\u get\u contents()
ob\u end\u clean()
。哦,真的吗?好吧,这不能回答我的问题。但是很高兴知道:)谢谢我能想到的唯一一件事是确保您没有忘记回显
render()
函数的结果。我需要回显吗?我制作了一个test.tpl文件,其中只有一个单词需要测试。如果我包括这个正常的,没有ob_clean()的所有工作。你需要使用
echo render()
。或者,您可以将
return$content
替换为
echo$content