[PHP]メンバ変数に可変関数を入れて呼び出せない

スポンサーリンク

メンバ変数func_nameに関数名を入れた際、$ClassName->func_name()みたいに呼びだそうとするとエラーになる。
call_user_func()を使えばいいらしい。

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

スポンサーリンク

シェアする

フォローする