0

質問があります。私は私のウェブサイトのためにいくつかのmvc'ish構造を作りました. 変数を割り当てずに、ビュー内で変数を使用できるようにしたいと考えています。

例で説明しましょう。ここに私のコントローラーの小さな部分があります:

class members extends controller{

public function _construct()
{
    parent::__construct();        

}
public function index()
{
    $test = 'test variable';
    $data['test2'] = 'test variable 2';

    view::setTemplate('header');
    view::setTemplate('homepage', $data);
    view::setTemplate('footer');
}
}

ビュー クラスの setTemplate() 関数で、extract($data)ビュー ファイルを使用してインクルードします。このようにして、期待どおり、$test2 をエコーし​​、「テスト変数 2」を出力として取得できます。

ただし、 setTemplate 関数に追加することなく、最初の $test 変数をビューに「記憶」させる方法はありますか?

4

1 に答える 1

0

免責事項: このコードはテストされていません

変数変数を使用して setTemplate メソッド内で変数を定義し、そこから直接ビューを含めることができます。

<?php
function setTemplate($view, $data) {
  if(is_array($data)){
    foreach($data as $var => $val){
      $$var = $val;
    }
  }
  include('views/'.$view.'.php');
}
?>
于 2013-02-11T20:53:36.537 に答える