読者です 読者をやめる 読者になる 読者になる

log

日記です

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

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言語)に良さを感じたい。