循环中的ob_start()

use*_*341 6 php ob-start ob-get-contents

我在使用event_()循环和使用ob_start()和ob_get_clean()循环内部时遇到问题.

这是我的功能:

protected function renderEmail() {
$template = $this->_case.".php";
if(is_file($this->_dir.DS.$template)) {
    ob_start();
    if(!empty($this->_records)) {               
        foreach($this->_records as $key => $value) {
            ${$key} = $value;
        }
    }
    require_once($this->_dir.DS.$template);
    return ob_get_clean();
} else {
    $this->_errors[] = "Email template not found";
    return false;
} }
Run Code Online (Sandbox Code Playgroud)

此功能基本上生成电子邮件的内容,然后返回它.

我遇到的问题是当我遍历多个电子邮件地址 - 发送相同的电子邮件内容时 - 只有第一个返回内容 - 以下是空白 - 任何想法为什么?

use*_*341 15

好的 - 你不会相信 - 一旦我发布了这个问题 - 直到我意识到问题出在哪里 - 我正在使用require_once()函数 - 这会阻止同一文件再次被包含 - 一旦改为包含()一切正常!