将变量转换为ob的问题

时间:2012-03-05 17:09:17

标签: php variables buffer

我使用以下代码将模板读入缓冲区(ob)。 $ vars包含我想要在模板中访问的所有变量。

print_r($this->vals);  //prints out an array of values, value1 => '', value2 => ''...
ob_start();
include myTemplate.php
$content = ob_get_contents();
ob_end_clean();
echo $content;

但是在我的模板中,$ vals是未定义的,或者我无法访问它。

知道我哪里出错了?

谢谢,

1 个答案:

答案 0 :(得分:0)

可能是一个简单的拼写错误。但您使用$vals代替$vars

如果这不是问题,请将ob_start()放在最上面。

ob_start();
print_r($this->vals);  //prints out an array of values, value1 => '', value2 => ''...
include "myTemplate.php"; //few errors were here, no quotes and semicolon
$content = ob_get_contents();
ob_end_clean();
echo $content;

刚做了一个快速测试,它确实有效。


更新

如果您尝试将print_r($this -> vals)的值设为$content。有一种非常简单的方法可以做到这一点。 print_r() [docs] 函数也会返回另一个参数是否返回。

如果是这样,您的整个代码都归结为此

$content = print_r($this->vals, true);