'; if(!in_array($action,$this->validActions)) { $this->invalidAction(); } elseif(method_exists($this,$action)) { $this->$action(); } elseif(method_exists($this,'defaultAction')) { $this->defaultAction(); } else { die('Geen default action ingesteld voor deze klasse!'); } } } // Extends super with actions and other functions. Only actions should be allowed to be called through determineAction class subclass extends superclass { var $validActions = array('showPage','destroyDatabase'); function showPage() { echo 'Hier een actie van subclass genaamd showPage...
'; } function destroyDatabase() { echo 'Database wissen mislukt, probeer het via Enterprise Manager!
'; } function defaultAction() { echo 'De defaultAction van subclass...
'; } } class wrongsubclass extends superclass { function showPage() { echo 'Foute subklasse laat van zich horen...
'; } } $test = new subclass(); $test->determineAction('Foo'); // Action does not exist, should show subclass::defaultAction $test->determineAction('showPage'); // Does exist, should show subclass::showPage $test2 = new foutesubclass(); $test2->determineAction('Foo'); // Doesn't exist, missing defaultAction ?>