I have a class hierarchy like the following:\[code\]class Alpha { public function initialize() { $class = get_class($this); $family = array( $class ); while( ($class = get_parent_class($class)) !== false ) { $family[] = $class; } $family = array_reverse($family); foreach($family as $className) { // call $className's start (instance) method } } public function start() { echo "calling start from Alpha\n"; }}class Beta extends Alpha { public function start() { echo "calling start from Beta\n"; }}class Charlie extends Beta { public function start() { echo "calling start from Charlie\n"; }}$c = new Charlie();$c->initialize();\[/code\]Alpha's initialize method should call the derived class's start method as well as all of the derived class's ancestor classes' start methods all the way back to Alpha's start method. The code should produce the following output:\[code\]calling start from Alphacalling start from Betacalling start from Charlie\[/code\]However, I can't seem to figure out how to call an instance method of a specific ancestor class specified by the $className variable.I've used \[code\]call_user_func(array($className, 'start'))\[/code\] but this causes the start method to be treated like a static function. Any ideas?