ブロックのクラスからレンダリングされる、ある種のブロックレンダラーを実行しています。私は$ thisを使用してブロックをビューから保護することを禁止したいからです。
class Test
{
function __construct()
{
$data["somedata"] = [1,2,3,4];
$this->render("view.php", $data);
}
protected function render($file, $data = [])
{
$func = $this->closedRender($file, $data);
$func();
}
protected function closedRender($file, $data)
{
return function() use ($file, $data) {
### Here if I use $this I gent instance of "Test" what I don't want
extract($data);
require $file;
};
}
}
どのようにすればいいですか?人々は通常、反対を達成したいと思うし、私は自分の状況に答えを見つけることができませんでしたので、
のようになりますどの変数を設定するかを自由に制御できます。 – Barmar
私は抽出物を使用しません、これは簡単なドラフトです。 $ thisは定義されており、オブジェクトのインスタンスです。私が見る方法は、クラス内にないグローバル関数を定義することです。しかし、何らかの方法があれば、私はクラス内でこの機能を持つことができるのが好きです。 –