Subscribe
池塘🐟
Search
Sign up
php
laravel
mysql
docker
redis
rabbitmq
go
js
其他
php 反射调用类的私有属性、方法
#####可使用场景,在不修改类的属性情况去调用类的私有方法,例如 单元测试某个方法 ```php <?php class A { private function a() { return 'a'; } protected function b() { return 'b'; } private static function aa() { return 'aa'; } private static function bb() { return 'bb'; } } function dd(...$parms) { foreach ($parms as $parm) { echo "<pre>"; var_dump($parm); echo "</pre>"; } die(); } $class = new \ReflectionClass(A::class); $ins = $class->newInstance(); //$ins = $class->newInstanceWithoutConstructor(); //不带类初始方法的实例 $method = $class->getMethod('aa'); $method->setAccessible(true); $r = $method->invoke($ins); dd($r); ------------------------------------------------------------------------------ 输出 string(2) "aa" ```
提交评论
提交