溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

php中如何調(diào)用類的私有方法

發(fā)布時(shí)間:2021-09-05 16:24:27 來源:億速云 閱讀:127 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“php中如何調(diào)用類的私有方法”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“php中如何調(diào)用類的私有方法”這篇文章吧。

php中調(diào)用類的私有方法的具體步驟:1、通過類名進(jìn)行反射;2、通過反射類進(jìn)行實(shí)例化;3、通過方法名獲取指定方法;4、設(shè)置可訪問性;5、執(zhí)行方法。

本文操作環(huán)境:windows10系統(tǒng)、php 7.1、thinkpad t480電腦。

在php中我們應(yīng)該如何去調(diào)用類的私有方法呢?我們知道php中是有完整的反射API的,并且添加了對(duì)類、接口、函數(shù)、方法和擴(kuò)展進(jìn)行反向工程的能力,那么我們就可以通過反射來調(diào)用執(zhí)行一個(gè)類中的私有方法。

接下來讓我們一起來看看具體的代碼實(shí)現(xiàn)吧。

代碼實(shí)現(xiàn):

<?php
 
//MyClass這個(gè)類中包含了一個(gè)名為myFun的私有方法
class MyClass {
    
    private $tmp = 'hello';
    
    private function myFun()
    {
        echo $this->tmp . ' ' . 'world!';
    }
}
 
//通過類名MyClass進(jìn)行反射
$ref_class = new ReflectionClass('MyClass');
 
//通過反射類進(jìn)行實(shí)例化
$instance  = $ref_class->newInstance();
 
//通過方法名myFun獲取指定方法
$method = $ref_class->getmethod('myFun');
 
//設(shè)置可訪問性
$method->setAccessible(true);
 
//執(zhí)行方法
$method->invoke($instance);
?>

以上是“php中如何調(diào)用類的私有方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI