0

私は単純なテンプレート エンジンに取り組んでおり、テンプレートがレンダリングされるたびに 1 回、テンプレート ファイルを複数回含めることが可能かどうか疑問に思っていました。基本的には次のようになります。

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 に答える