一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

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是“動態”語言,所以可以類的成員變量不用聲明,在函數中聲明也是可以的。

php技術PHP反射類ReflectionClass和ReflectionObject的使用方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人精品人成网站 | 成人小视频网 | 婷婷网五月天天综合天天爱 | 人人干人 | 国产精品视频在这里有精品 | 国产线视频精品免费观看视频 | 亚洲黄色小说图片 | 亚洲国产夜色在线观看 | 国产成人啪午夜精品网站 | 亚洲欧美另类精品久久久 | 色多多网站 | 国产精品福利午夜h视频 | 狠狠操操操 | 欧美成人免费一区在线播放 | 国产视频合集 | 四虎伊人 | 国产在线精品美女观看 | 超爽人人做人人爽 | 精品国内自产拍在线视频 | 在线看的成人性视频 | 国产精品天天看特色大片不卡 | 丁香六月综合 | xxxxxx日本处大片免费看 | 国产一起色一起爱 | 国产91精品一区二区视色 | 国内精品1区1区3区4区 | 国产视频一二区 | 日韩 欧美 国产 亚洲 中文 | 涩涩爱视频 | 久久精品视频一区二区三区 | 日本视频一区二区三区 | 久久久999 | 亚洲视频一区二区三区四区 | 伊人网大香| 欧美福利视频网站 | 91在线 在线播放 | sihu国产午夜精品一区二区三区 | 国产精品久久久久无码av | 国产精品分类视频分类一区 | 一级黄色a毛片 | 狠狠色噜噜狠狠狠米奇9999 |