检查类在 PHP 中是否有方法

2022-08-30 17:29:19

目前我的代码看起来像这样:

switch ($_POST['operation']) {
    case 'create':
        $db_manager->create();
        break;
    case 'retrieve':
        $db_manager->retrieve();
        break;
...
}

我想做的是,检查调用的方法是否存在:如果是,那么调用它,否则回显“错误”可能吗?我该怎么做?$_POST['operation']


答案 1

您可以使用method_exists

if (method_exists($db_manager, $_POST['operation'])){
  $db_manager->{$_POST['operation']}();
} else {
  echo 'error';
}

虽然我强烈建议你不要以这种方式编程......


答案 2

您可以使用 is_callable()method_exists()。

它们之间的区别在于,如果处理方法调用,则后者不适用于这种情况。__call()


推荐