91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么在PHP中利用反射動態獲取類方法和屬性

發布時間:2021-02-18 15:18:12 來源:億速云 閱讀:149 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關怎么在PHP中利用反射動態獲取類方法和屬性,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

<?php
class Person {
  const weightUnit = 'kg';
  const heightUnit = 'cm';
  public $name = 'test';
  public $age = 1;
  public function say($msg = '') {
    echo $msg;
  }
}

$p = new Person ();
// 普通的實例化對象,調用方法
$p->say ( 'hello' );
echo "<br/>";
// 創建一個Person的反射類
$rp = new ReflectionClass ( 'Person' );

// 通過ReflectionClass的方法來獲取類的詳細信息

// 獲取常量
echo $rp->getConstant ( 'weightUnit' );
echo "<br/>";
// 獲取類中已定義的常量
var_dump ( $rp->getConstants () );

// 獲取屬性,返回的是一個ReflectionProperty類
$propName = $rp->getProperty ( 'name' );
echo $propName->getName(), ':', $propName->getValue ( new Person () );
echo "<br/>";
// 獲取類中已定義的一組屬性
$propArr = $rp->getProperties ();
foreach ( $propArr as $obj ) {
  echo $obj->getName (), ':', $obj->getValue ( new Person () );
}
echo "<br/>";
//獲取方法,返回的是一個ReflectionMethod類
$sayMetd = $rp->getMethod('say');
if($sayMetd->isPublic() && !$sayMetd->isAbstract()) {
  $sayMetd->invoke(new Person(), 'hehe');
  $sayMetd->invokeArgs(new Person(), array('hehe'));
}

//獲取類中已定義的一組方法,可以過濾不需要的方法
$metds = $rp->getMethods();

//獲取命名空間
echo $rp->getNamespaceName();
echo "<br/>";
//判斷一個方法是否定義
if($rp->hasMethod('say')) {
  echo 'say has';
}
echo "<br/>";
//判斷一個屬性是否定義
if($rp->hasProperty('name')) {
  echo 'name has';
}

運行結果:

hello
kg
array(2) { ["weightUnit"]=> string(2) "kg" ["heightUnit"]=> string(2) "cm" } name:test
name:testage:1
hehehehe
say has
name has

關于怎么在PHP中利用反射動態獲取類方法和屬性就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

景洪市| 武冈市| 新余市| 沙田区| 南平市| 安化县| 太和县| 邹城市| 蓬溪县| 潮安县| 双辽市| 冀州市| 南江县| 龙海市| 阿克苏市| 平南县| 鄂尔多斯市| 固原市| 綦江县| 黑龙江省| 曲水县| 呼伦贝尔市| 米易县| 霍林郭勒市| 临湘市| 北海市| 息烽县| 独山县| 元江| 新平| 盖州市| 北宁市| 武乡县| 岳普湖县| 伊宁县| 台东市| 崇明县| 兴城市| 卢龙县| 巴青县| 乐平市|