我使用以下代码将模板读入缓冲区(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是未定义的,或者我无法访问它。
知道我哪里出错了?
谢谢,
答案 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);