php中呼叫類別的私有方法的具體步驟:1、透過類別名稱進行反射;2、透過反射類別進行實例化;3、透過方法名稱取得指定方法;4、設定可存取性; 5、執行方法。
本文操作環境:windows10系統、php 7.1、thinkpad t480電腦。
在php中我們該如何去呼叫類別的私有方法呢?我們知道php中是有完整的反射API的,並且加入了對類別、介面、函數、方法和擴充進行反向工程的能力,那麼我們就可以透過反射來呼叫執行一個類別中的私有方法。
接下來讓我們一起來看看具體的程式碼實作吧。
程式碼實作:
<?php //MyClass这个类中包含了一个名为myFun的私有方法 class MyClass { private $tmp = 'hello'; private function myFun() { echo $this->tmp . ' ' . 'world!'; } } //通过类名MyClass进行反射 $ref_class = new ReflectionClass('MyClass'); //通过反射类进行实例化 $instance = $ref_class->newInstance(); //通过方法名myFun获取指定方法 $method = $ref_class->getmethod('myFun'); //设置可访问性 $method->setAccessible(true); //执行方法 $method->invoke($instance); ?>
以上就是全部的實作程式碼了,小夥伴們可以在本地執行下上述程式碼。
如果大家對PHP課程非常有興趣,或是想要提升自己的程式設計能力,歡迎大家參加php中文網17期php培訓班。
以上是php中怎麼呼叫類別的私有方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!