php 利用反射API獲取類資訊

2021-09-01 02:49:33 字數 3584 閱讀 1038

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

php具有完整的反射api,可以對類、介面、函式、方法和擴充套件進行反向工程。反射api並提供方法取出函式、類和方法中的文件注釋。本文將介紹使用php反射api獲取類資訊的方法,提供完整演示**。

$ref = new reflectionclass($classname);echo

$ref->getname();echo

$ref->getfilename();

$ref = new reflectionclass($classname);$properties = $ref->getproperties();foreach($properties

as$property)

$ref = new reflectionclass($classname);$methods = $ref->getmethods();foreach($methods

as$method)

$ref = new reflectionclass($classname);$inte***ces = $ref->getinte***ces();foreach($inte***ces

as$inte***ce)

user.class.php

<?php /** 使用者介面 */inte***ce iuser/** 使用者類 */class user implements iuser    /**     * 讀取使用者資料     *@param  int    $id 使用者id     *@return array     */

public function get($id)else    }}/** vip使用者類 */class vip extends user        return $data;    }    /**     * 修飾資料     *@param  array $data 使用者資料     *@return array     */

private function format($data)}?>

ref.class.php

<?php 

/** * 呼叫php反射類獲取類資訊 * date:    2017-05-24 * author:  fdipzone * ver:     1.0 * * func * public static setclass       設定反射類 * public static getbase        讀取類基本資訊 * public static getinte***ces  讀取類介面 * public static getproperties  讀取類屬性 * public static getmethods     讀取類方法 */

class

ref    // 讀取類基本資訊

public

static

function

getbase

()    // 讀取類介面

public

static

function

getinte***ces

()        }    }    // 讀取類屬性

public

static

function

getproperties

()        }    }    // 讀取類方法

public

static

function

getmethods

()                }                echo

'method comments: '.self::formatcomment($method->getdoccomment()).php_eol.php_eol;            }        }    }    // 獲取修飾符

private

static

function

getmodifier

($o)        // protected

if($o->isprotected())        // private

if($o->isprivate())        return

'';    }    // 格式化注釋內容

private

static

function

formatcomment

($comment)}?>

<?phprequire 

'ref.class.php';require

'user.class.php';echo '';ref::setclass('vip');ref::getbase();ref::getproperties();ref::getmethods();ref::getinte***ces();echo '

';?>

base infoclass name: vipclass path: /home/fdipzone/refclass filename: user.class.phpproperties infoproperty name: userproperty modifier: protected

property comments: 使用者資料methods infomethod

name: getvipmethod

modifier:

public

method

params

num:

1param name:idmethod

comments: 讀取vip使用者資料method

name: formatmethod

modifier:

private

method

params

num:

1param name:datamethod

comments: 修飾資料method

name:

addmethod

modifier:

public

method

params

num:

1param name:datamethod

comments: 新增使用者method

name: getmethod

modifier:

public

method

params

num:

1param name:idmethod

comments: 讀取使用者資料inte***ces infointe***ce name: iuser

給我老師的人工智慧教程打call!

利用API函式獲取系統資訊

我們所編寫的每乙個程式,都會有乙個執行環境的最低需求。如何獲取使用者機器的配置資訊呢?其實,我們可以利用api函式輕鬆實現。我們利用visual c 嚮導生成乙個單文件介面的視窗程式框架。生成乙個新的對話方塊,這個對話方塊用於顯示我們所取得的機器的配置資訊。為這個對話方塊生成乙個新類,命名為csys...

檢視類的相關資訊 PHP函式,非反射API

基類 class product 繼承基類的類 class gift extends product 操作類,檢視對應的類的資訊 class shopcar 獲取對應 物件 的 類 public function showclass instanceof 能根據繼承樹往上找,而 get class ...

利用反射api查詢乙個類的具體資訊

講到這個例項,首先介紹下本人,我是乙個php程式猿。從事drupal開發2年多。能夠說從實習開始就接觸這個,至今沒有換過。drupal給我的感覺是倆字 強大 今天寫乙個views的字段。然後須要繼承views的views handler field類,還要自己實現裡面的一些方法,走一些自己的配置設定...