メンバ変数func_nameに関数名を入れた際、$ClassName->func_name()みたいに呼びだそうとするとエラーになる。
call_user_func()を使えばいいらしい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class C { public $func_name; public function __construct($func_name){ $this->func_name = $func_name; } } function t(){ echo "t is called"; } $a = new C("t"); #$a->funcname() # これは無理 call_user_func($a->func_name); # これで動く |
参考: [PHP] クラスにおけるメンバ変数(プロパティ)内の関数オブジェクトとメソッドの性質:無名関数(クロージャ)について | Ouka Studio