0

私は2つのファイルを持っています:

テンプレート.php:

<div><?php echo $myVar; ?></div>

コントローラ

class MyClass extends Base {
    public function view() {
        $myVar = 'hello world';
        $this->loadTemplate('main');
    }
}
abstract class Base {
    public function loadTemplate($template) {
        require_once("templates/$template.php");
    }
}

しかし、require は loadTemplate 関数のスコープ内にあるため、これは機能しません。loadTemplate で require 関数への呼び出しを返すにはどうすればよいですか? $this->loadTemplate(); のような単一の関数を使用して、require を view() スコープに含める必要があります。require_once($this->getTemplatePath()) を使用しない

何か案が?

4

2 に答える 2

2

できません。通常、あなたがやろうとしていることは、配列に変数 ( ) を渡してからメソッドを呼び出すことによって達成され$this->loadTemplate(array('myVar' => 'hello world'))ます。extract($vars)loadTemplate

于 2012-07-21T12:18:01.813 に答える
2

ビュースクリプトの変数にアクセスするには、クラスメンバーを使用するだけです

クラス

class MyClass extends Base
{
    public function view()
    {
        $this->myVar = 'hello world';
        $this->loadTemplate('main');
    }
}

abstract class Base
{
    public function loadTemplate($template)
    {
        require_once("templates/$template.php");
    }
}

テンプレートmain.php

Output: <?= $this->myVar ?>
于 2012-07-21T12:24:00.467 に答える