Вы можете сохранить метод в одной переменной, используя замыкание:
class test{
function echo_this($text){
echo $text;
}
function get_method($method){
$object = $this;
return function() use($object, $method){
$args = func_get_args();
return call_user_func_array(array($object, $method), $args);
};
}
}
$test = new test();
$echo = $test->get_method('echo_this');
$echo('Hello'); //Output is "Hello"
РЕДАКТИРОВАТЬ: я редактировал код, и теперь он совместим с PHP 5.3. Другой пример здесь