国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP反射類ReflectionClass和ReflectionObject的使用方法

PHP反射類ReflectionClass和ReflectionObject的使用方法

2020-05-29 14:53PHP教程網 PHP教程

PHP反射類ReflectionClass和ReflectionObject,該擴展用來分析php程序,導出或提取出關于類、方法、屬性、參數等的詳細信息,包括注釋。

PHP中的擴展反射類,該擴展用來分析php程序,導出或提取出關于類、方法、屬性、參數等的詳細信息,包括注釋。
看一個這樣的問題,php類的成員變量沒有在類中聲明,而是在函數中聲明,有什么不同?

復制代碼 代碼如下:


class test{
    private $name;
    private $sex;
    function __construct(){
        $this->aaa='aaa';
    }
}

$test=new test();

$reflect=new ReflectionClass($test);
$pro=$reflect->getDefaultProperties();
print_r($pro);//打印結果:Array ( [name] => [sex] => )

echo $test->aaa;//打印結果:aaa


在這個test類中,聲明了兩個成員變量$name和$sex,但是在構造函數中,又聲明了一個變量$aaa,初始化類,使用反射類打印默認成員屬性只有聲明的兩個成員變量屬性,但是打印類的$aaa變量發現還是可以輸出結果。
請問類的成員變量不用聲明,在函數中聲明也是可以的嗎,有什么區別?
在你這個例子中,使用ReflectionClass是不恰當的,因為__construct只有在實例化class時,才會執行。
也就是說ReflectionClass更多的是反射類聲明時的結構,而不是類實例化后的結構,所以沒有輸出屬性aaa是正確,因為屬性aaa確實是(在類聲明時)不存在的。
那么怎么看屬性aaa呢,應該用ReflectionObject反射實例化后的結構,例如

復制代碼 代碼如下:


<?php
class test{
    private $name;
    private $sex;
    function __construct(){
        $this->aaa='aaa';
    }
}
$test=new test();

$reflect=new ReflectionObject($test);
$pro=$reflect->getProperties();
print_r($pro);


經過實例化以后,屬性aaa才會存在,這時你就能看到屬性aaa了
因為php是“動態”語言,所以可以類的成員變量不用聲明,在函數中聲明也是可以的。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久中文字幕一区二区三区 | 欧美日韩久久精品 | 久久久久国产精品免费免费搜索 | 久久午夜视频 | 欧美精品在线一区二区三区 | 免费成人福利视频 | 中文字幕一区在线观看视频 | 成人av高清 | 国产精品免费视频一区 | 亚洲专区欧美 | 伊人精品成人久久综合软件 | av网站推荐 | 先锋影音av在线 | 免费一级黄 | 成人爽a毛片一区二区免费 成年人毛片视频 | 日本不卡一区二区三区 | 涩涩视频在线免费看 | 久久精品国产一区二区三区不卡 | 国产乱淫精品一区二区三区毛片 | 亚洲专区中文字幕 | 国产狂做受xxxxx高潮 | 久草免费在线 | 国产精品日日 | 国产美女一区二区三区 | 黄色国产 | 青青久视频 | 日韩精品中文字幕在线 | 精品久久在线 | 欧洲一级毛片 | 国产高潮失禁喷水爽网站 | 国产亚洲精品久久19p | 欧美一区永久视频免费观看 | 综合久久亚洲 | 久久综合九九 | 亚洲成人av在线 | 国产高清精品在线 | 国产97在线 | 免费 | 午夜视频福利在线观看 | 欧美久久久 | 美女久久 | 精品综合 |