call_user_funcについて。
call_user_funcはメソッドを動的に呼ぶことができるメソッドの1つで、コールバック関数を使いたいときに使われます。JavaScriptでは比較的多いとおもいますが、PHPでも実装可能ですので、記述しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php class Calc{ private function getName($param) { return $param['name']; } private function getAge($param) { return $param['age']; } public function doFunc($param, $method) { $res = call_user_func(array($this, 'get'. $method), $param); echo $res; } } $calc = new Calc(); $calc->doFunc([ 'name' => 'tarou', 'age' => 30 ], 'Age'); //30 |
オブジェクト以外で呼び出すときは
1 |
$res = call_user_func( メソッド名, $param); |
になります。