检查PHP中的方法可见性

时间:2010-06-05 18:56:00

标签: php oop class methods visibility

有没有办法检查类方法是否已被声明为私有或公共?

我正在使用一个控制器,其中url被映射到类中的方法,我只想触发方法,如果它们被定义为public。

3 个答案:

答案 0 :(得分:8)

答案 1 :(得分:8)

要扩展Safraz Ahmed的答案(因为Reflection缺少文档),这是一个简单的例子:

class foo {
    private function bar() {
        echo "bar";
    }
}

$check = new ReflectionMethod('foo', 'bar');

echo $check->isPrivate();

答案 2 :(得分:3)

让我们从另一边看。您并不需要了解方法的可见性级别。您需要知道是否可以调用该方法。 http://lv.php.net/is_callable

if(is_callable(array($controller, $method))){
  return $controller->$method();
}else{
  throw new Exception('Method is not callable');
  return false;
}