- method_exists: documentation ( source)
<?php
final class EventManager
{
public static function call($sEvent) {
$aClasses = ['B'];
foreach ($aClasses as $sClassName) {
$oMethodChecking = new ReflectionMethod($sClassName,$sFunctionName);
$sFunctionName = 'event_'.$sEvent;
if (method_exists($sClassName, $sFunctionName) && $oMethodChecking->isStatic()) {
call_user_func($sClassName.'::'.$sFunctionName);
}
}
}
}
final class B
{
public static function event_event_name() {
echo 'ok';
}
}
EventManager::call('event_name');