回答編集履歴

1

変数名が衝突しても問題ないように func_get_arg を使う方式に変更

2015/12/07 02:29

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -1,6 +1,10 @@
1
1
  第2引数に連想配列として渡してきて`extract`する手法がよくフレームワークで用いられています。
2
2
 
3
3
  また`require_once`ではなく`require`を使うべきですね、ここでは。
4
+
5
+
6
+
7
+ ###### 例
4
8
 
5
9
 
6
10
 
@@ -24,9 +28,15 @@
24
28
 
25
29
  public function render($template, array $variables = []) {
26
30
 
27
- extract($variables);
31
+ $closure = function () {
28
32
 
33
+ extract(func_get_arg(1));
34
+
35
+ require(func_get_arg(0));
36
+
37
+ };
38
+
29
- require("$this->basedir/$template.php");
39
+ $closure("$this->basedir/$template.php", $variables);
30
40
 
31
41
  }
32
42