成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP通過反射來得到類,以及一些基本的應(yīng)用

BlackHole1 / 2593人閱讀

摘要:發(fā)現(xiàn)大量的使用了反射機(jī)制。下面就來簡單看看一些反射的應(yīng)用獲得反射下面我們來通過這個(gè)反射來得到的私有屬性得到結(jié)果得到這樣我們就可以很輕松的獲得的私有屬性了。最后通過執(zhí)行該方法反射還有很多可用的方法,這里就不一一說了。

這幾天在看laravel框架的核心代碼。發(fā)現(xiàn)大量的使用了反射機(jī)制。下面就來簡單看看一些反射的應(yīng)用

class A
{
    private $_foo = "this is a";
    public function index()
    {
        return $this->_foo;
    }
    private function _come($param)
    {
        return "this is come".$param;
    }

}
$refClass = new ReflectionClass("A");//獲得反射

下面我們來通過這個(gè)反射來得到A的私有屬性

$privateParams = $refClass->getDefaultProperties();
print_r($privateParams);//得到結(jié)果 Array ( [_foo] => this is a )
echo $privateParams["_foo"];//得到 this is a

這樣我們就可以很輕松的獲得A的私有屬性了。那么執(zhí)行私有方法應(yīng)該怎么操作呢。接下來我們先看執(zhí)行共有方法,執(zhí)行公有方法比較簡單。

/****************獲得類的實(shí)例*******************/
$class = $refClass->newInstance();
echo $class->index();

這樣就可以調(diào)用公有的方法了。下面看執(zhí)行私有方法

/****************獲取A的方法*******************/
$refHasClass = $refClass->getMethods();
print_r($refHasClass);
/***
 * Array ( [0] => ReflectionMethod Object ( [name] => index [class] => A )
 * [1] => ReflectionMethod Object ( [name] => _come [class] => A ) )
 */
$come = $refClass->getMethod("_come");
$come->setAccessible(true);
echo $come->invoke($class,"this is param");
// this is athis is comethis is param

先通過getMethod()就可以獲取到come方法,然后設(shè)置come方法的可訪問性。最后通過invoke執(zhí)行該方法

反射還有很多可用的方法,這里就不一一說了。有興趣的可以看看官方文檔

原文地址

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28822.html

相關(guān)文章

  • PHP核心技術(shù)與最佳實(shí)踐(第一章 面向?qū)ο笏枷?em>的核心概念)

    摘要:現(xiàn)代的面向?qū)ο蟮乃枷氩粡?qiáng)調(diào)為真實(shí)世界建模變得更加理性化一些,把目標(biāo)放在解耦上。各種語言中的多態(tài)多態(tài)確切的含義是同一類的對(duì)象收到相同消息時(shí),會(huì)得到不同的結(jié)果。小結(jié)本章主要介紹面向?qū)ο笏枷氲某绦虻慕M成元素類和對(duì)象。 第一章 面向?qū)ο笏枷氲暮诵母拍?showImg(https://segmentfault.com/img/bVNfjM?w=673&h=334); showImg(https:...

    dreamGong 評(píng)論0 收藏0
  • PHP高級(jí)特性-反射Reflection以及Factory工廠設(shè)計(jì)模式結(jié)合使用[代碼實(shí)例]

    摘要:反射提供給面向?qū)ο缶幊炭梢宰允〉哪芰Γ捶瓷?。在簡單工廠模式中,根據(jù)傳遞的參數(shù)來返回不同的類的實(shí)例簡單工廠模式又稱為靜態(tài)工廠方法模式。也就是簡單工廠模式工廠工廠類。PHP高級(jí)特性-反射以及工廠設(shè)計(jì)模式的結(jié)合使用 [結(jié)合 Laravel-Admin 代碼實(shí)例講解]利用反射來實(shí)現(xiàn)工廠模式的生產(chǎn)而無需創(chuàng)建特定的工廠類本文地址http://janrs.com/?p=833轉(zhuǎn)載無需經(jīng)過作者本人授權(quán)轉(zhuǎn)載...

    番茄西紅柿 評(píng)論0 收藏2637
  • PHP 進(jìn)階之路 - 后端多元化之快速切入 Java 開發(fā)

    摘要:以實(shí)現(xiàn)自己熟悉的東西為導(dǎo)向比如我們做后端開發(fā),首先是常用的循環(huán)迭代條件判斷增刪改成。它是由實(shí)現(xiàn)的,不保證元素的順序,也就是說所說元素插入的順序與輸出的順序不一致。 下面是我直播的文字版,直播地址:https://segmentfault.com/l/15...代碼:https://github.com/zhoumengka...整個(gè)項(xiàng)目我們我又細(xì)分了6個(gè)版本來演進(jìn),希望更加便于大家對(duì)比...

    Cristic 評(píng)論0 收藏0
  • PHP 進(jìn)階之路 - 后端多元化之快速切入 Java 開發(fā)

    摘要:以實(shí)現(xiàn)自己熟悉的東西為導(dǎo)向比如我們做后端開發(fā),首先是常用的循環(huán)迭代條件判斷增刪改成。它是由實(shí)現(xiàn)的,不保證元素的順序,也就是說所說元素插入的順序與輸出的順序不一致。 下面是我直播的文字版,直播地址:https://segmentfault.com/l/15...代碼:https://github.com/zhoumengka...整個(gè)項(xiàng)目我們我又細(xì)分了6個(gè)版本來演進(jìn),希望更加便于大家對(duì)比...

    xi4oh4o 評(píng)論0 收藏0
  • 反射PHP應(yīng)用

    摘要:反射在每個(gè)面向?qū)ο蟮木幊陶Z言中都存在,它的主要目的就是在運(yùn)行時(shí)分析類或者對(duì)象的狀態(tài),導(dǎo)出或提取出關(guān)于類方法屬性參數(shù)等的詳細(xì)信息,包括注釋。反射是操縱面向?qū)ο蠓缎椭性P偷?,可用于?gòu)建復(fù)雜,可擴(kuò)展的應(yīng)用。 反射在每個(gè)面向?qū)ο蟮木幊陶Z言中都存在,它的主要目的就是在運(yùn)行時(shí)分析類或者對(duì)象的狀態(tài),導(dǎo)出或提取出關(guān)于類、方法、屬性、參數(shù)等的詳細(xì)信息,包括注釋。 反射是操縱面向?qū)ο蠓缎椭性P偷?AP...

    stormgens 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<