2023-03-06

比如碰到class有私有或保护方法,不能直接访问,也不可以直接改代码的情况下可以使用

Class代码

class TestClass {

  protected function protectedList() {
    return ['c', 'd'];
  }

  private function privateList() {
    return ['a', 'b'];
  }

  public function publicList() {
    return ['e', 'f'];
  }
}
$class = new TestClass();
$ref = new \ReflectionMethod($class, 'protectedList');
$ref->setAccessible(TRUE);
$list = $ref->invoke($class);
dpm($list);

输出

Array
(
    [0] => c
    [1] => d
)

 

标签: PHP