我正在研究一个简单的模板引擎,我想知道是否可以多次包含模板文件,每次渲染模板一次。它基本上是这样的:
function rendering_function_in_rendering_class()
{
include $path_to_templates . get_class($this) . 'template.php';
}
然后在模板文件中:
<h1>Hello, <?php echo $this->awesomename ?>!</h1>
答案 0 :(得分:2)
此功能完全符合您的需要:
<?php
function embed($file, $vars) {
ob_start();
extract($vars, EXTR_SKIP);
include($file);
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
它将文件路径作为第一个参数和变量的键/值数组,这些变量将被提取到范围中,以便您的模板能够直接在HTML中使用它们,如下所示:
<h1><?php print $title; ?></h1>
答案 1 :(得分:0)
不,PHP中的函数只能定义一次。但是,您可以为每个类创建多个实例:
$this1=new rendering();
$this2=new rendering();
echo $this1->awesomename;
echo $this2->awesomename;
或者在没有初始化类的情况下使用函数instide一个类:
$rendering::rendering_function_in_rendering_class();
这会回答你的问题吗?