0

我正在开发一个简单的模板引擎,我想知道是否可以多次包含模板文件,每次渲染模板一次。它基本上是这样的:

function rendering_function_in_rendering_class()
{
    include $path_to_templates . get_class($this) . 'template.php';
}

然后在模板文件中:

<h1>Hello, <?php echo $this->awesomename ?>!</h1>
4

2 回答 2

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>
于 2012-05-16T11:50:22.207 回答
0

不,PHP 中的函数只能定义一次。但是,您可以为每个类创建多个实例:

$this1=new rendering();
$this2=new rendering();
echo $this1->awesomename;
echo $this2->awesomename;

或者在没有初始化类的情况下在类中使用函数:

$rendering::rendering_function_in_rendering_class();

这是否回答你的问题?

于 2012-05-16T11:51:13.677 回答