ぶろぐ

日記です

動的にクラスのソッドを呼ぶやつ


call_user_funcあるけど構文でいけるからそっちにかっこ良さを感じる年頃。

<?php

class Hoge {
	public function test($param1,$param2) {
		echo "test_${param1}_${param2}";
	}
}

$class_name    = 'Hoge';
$function_name = 'test';
$params = array('foo','bar');

$instance = new $class_name();
$instance->$function_name($params);

call_user_func_array使うときはこれかな

<?php

class Hoge {
	public function test($param1,$param2) {
		echo "test_${param1}_${param2}";
	}
}

$class_name    = 'Hoge';
$function_name = 'test';
$params = array('foo','bar');

call_user_func_array(array($class_name, $function_name), $params);

結論。どっちでもいい。けど、javaではリフレクションとか使わないと出来ないことをサクッとできるPHP(LL言語)に良さを感じたい。