亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP反射使用實例和PHP反射API的中文說明

2020-03-22 18:18:10
字體:
來源:轉載
供稿:網友
最近在開發過程中需要獲取某個類方法的參數數量、名稱及參數順序,好根據參數的名稱來從$_GET里取值。如方法原型為test($uid,$score), 那么我就知道需要需要從$_GET取
復制代碼 代碼如下:
$uid = $_GET['uid'];$score = $_GET['score'];然后調用方法$obj- test($uid,$score)當然前提是約定好了參數名稱和get方法傳值變量名一致。采用PHP的反射API,獲得函數參數名稱和參數默認值的方法如下:
復制代碼 代碼如下:
php
html' target='_blank'>class testClass{

public function testFunc($param1,$param2=0){

}
}

$method = new ReflectionMethod('testClass', 'testFunc');
$params = $method--- getParameters();
foreach ($params as $param) {
echo 'param name: ' . $param- getName(),"/n";
if ($param- isOptional()) {
echo 'Default value: ' . $param- getDefaultValue(),"/n";
}
}
下面是PHP反射API的介紹:1、用途:
該擴展分析php程序,導出或提取出關于類、方法、屬性、參數等的詳細信息,包括注釋
Reflection可以說是對php庫函數:“Classes/Objects 類/對象函數”的一個擴展。
主要用在通過程序檢測現有php程序內部關于類、方法等信息,并做出處理。2、API概覽:
復制代碼 代碼如下:
class Reflection { }
interface Reflector { }
class ReflectionException extends Exception { }
class ReflectionFunction implements Reflector { }
class ReflectionParameter implements Reflector { }
class ReflectionMethod extends ReflectionFunction { }
class ReflectionClass implements Reflector { }
class ReflectionObject extends ReflectionClass { }
class ReflectionProperty implements Reflector { }
class ReflectionExtension implements Reflector { }
3、詳細說明:(例子詳見php手冊)
復制代碼 代碼如下:
①Reflection類
php
class Reflection
{
public static mixed export(Reflector r [,bool return])
//導出一個類或方法的詳細信息
public static array getModifierNames(int modifiers)
//取得修飾符的名字
}


②ReflectionException類

該類繼承標準類,沒特殊方法和屬性。

③ReflectionFunction類
php
class ReflectionFunction implements Reflector
{
final private __clone()
public object __construct(string name)
public string __toString()
public static string export()
//導出該函數的詳細信息
public string getName()
//取得函數名
public bool isInternal()
//測試是否為系統內部函數
public bool isUserDefined()
//測試是否為用戶自定義函數
public string getFileName()
//取得文件名,包括路徑名
public int getStartLine()
//取得定義函數的起始行
public int getEndLine()
//取得定義函數的結束行
public string getDocComment()
//取得函數的注釋
public array getStaticVariables()
//取得靜態變量
public mixed invoke(mixed* args)
//調用該函數,通過參數列表傳參數
public mixed invokeArgs(array args)
//調用該函數,通過數組傳參數
public bool returnsReference()
//測試該函數是否返回引用
public ReflectionParameter[] getParameters()
//取得該方法所需的參數,返回值為對象數組
public int getNumberOfParameters()
//取得該方法所需的參數個數
public int getNumberOfRequiredParameters()
//取得該方法所需的參數個數
}


④ReflectionParameter類:
php
class ReflectionParameter implements Reflector
{
final private __clone()
public object __construct(string name)
public string __toString()
public static string export()
//導出該參數的詳細信息
public string getName()
//取得參數名
public bool isPassedByReference()
//測試該參數是否通過引用傳遞參數
public ReflectionClass getClass()
//若該參數為對象,返回該對象的類名
public bool isArray()
//測試該參數是否為數組類型
public bool allowsNull()
//測試該參數是否允許為空
public bool isOptional()
//測試該參數是否為可選的,當有默認參數時可選
public bool isDefaultValueAvailable()
//測試該參數是否為默認參數
public mixed getDefaultValue()
//取得該參數的默認值
}


⑤ReflectionClass類:
php
class ReflectionClass implements Reflector
{
final private __clone()
public object __construct(string name)
public string __toString()
public static string export()
//導出該類的詳細信息
public string getName()
//取得類名或接口名
public bool isInternal()
//測試該類是否為系統內部類
public bool isUserDefined()
//測試該類是否為用戶自定義類
public bool isInstantiable()
//測試該類是否被實例化過
public bool hasConstant(string name)
//測試該類是否有特定的常量
public bool hasMethod(string name)
//測試該類是否有特定的方法
public bool hasProperty(string name)
//測試該類是否有特定的屬性
public string getFileName()
//取得定義該類的文件名,包括路徑名
public int getStartLine()
//取得定義該類的開始行
public int getEndLine()
//取得定義該類的結束行
public string getDocComment()
//取得該類的注釋
public ReflectionMethod getConstructor()
//取得該類的構造函數信息
public ReflectionMethod getMethod(string name)
//取得該類的某個特定的方法信息
public ReflectionMethod[] getMethods()
//取得該類的所有的方法信息
public ReflectionProperty getProperty(string name)
//取得某個特定的屬性信息
public ReflectionProperty[] getProperties()
//取得該類的所有屬性信息
public array getConstants()
//取得該類所有常量信息
public mixed getConstant(string name)
//取得該類特定常量信息
public ReflectionClass[] getInterfaces()
//取得接口類信息
public bool isInterface()
//測試該類是否為接口
public bool isAbstract()
//測試該類是否為抽象類
public bool isFinal()
//測試該類是否聲明為final
public int getModifiers()
//取得該類的修飾符,返回值類型可能是個資源類型
//通過Reflection::getModifierNames($class- getModifiers())進一步讀取
public bool isInstance(stdclass object)
//測試傳入的對象是否為該類的一個實例
public stdclass newInstance(mixed* args)
//創建該類實例
public ReflectionClass getParentClass()
//取得父類
public bool isSubclassOf(ReflectionClass class)
//測試傳入的類是否為該類的父類
public array getStaticProperties()
//取得該類的所有靜態屬性
public mixed getStaticPropertyValue(string name [, mixed default])
//取得該類的靜態屬性值,若private,則不可訪問
public void setStaticPropertyValue(string name, mixed value)
//設置該類的靜態屬性值,若private,則不可訪問,有悖封裝原則
public array getDefaultProperties()
//取得該類的屬性信息,不含靜態屬性
public bool isIterateable()
public bool implementsInterface(string name)
//測試是否實現了某個特定接口
public ReflectionExtension getExtension()
public string getExtensionName()
}


⑥ReflectionMethod類:
php
class ReflectionMethod extends ReflectionFunction
{
public __construct(mixed class, string name)
public string __toString()
public static string export()
//導出該方法的信息
public mixed invoke(stdclass object, mixed* args)
//調用該方法
public mixed invokeArgs(stdclass object, array args)
//調用該方法,傳多參數
public bool isFinal()
//測試該方法是否為final
public bool isAbstract()
//測試該方法是否為abstract
public bool isPublic()
//測試該方法是否為public
public bool isPrivate()
//測試該方法是否為private
public bool isProtected()
//測試該方法是否為protected
public bool isStatic()
//測試該方法是否為static
public bool isConstructor()
//測試該方法是否為構造函數
public bool isDestructor()
//測試該方法是否為析構函數
public int getModifiers()
//取得該方法的修飾符
public ReflectionClass getDeclaringClass()
//取得該方法所屬的類
// Inherited from ReflectionFunction
final private __clone()
public string getName()
public bool isInternal()
public bool isUserDefined()
public string getFileName()
public int getStartLine()
public int getEndLine()
public string getDocComment()
public array getStaticVariables()
public bool returnsReference()
public ReflectionParameter[] getParameters()
public int getNumberOfParameters()
public int getNumberOfRequiredParameters()
}


⑦ReflectionProperty類:
php
class ReflectionProperty implements Reflector
{
final private __clone()
public __construct(mixed class, string name)
public string __toString()
public static string export()
//導出該屬性的詳細信息
public string getName()
//取得該屬性名
public bool isPublic()
//測試該屬性名是否為public
public bool isPrivate()
//測試該屬性名是否為private
public bool isProtected()
//測試該屬性名是否為protected
public bool isStatic()
//測試該屬性名是否為static
public bool isDefault()
public int getModifiers()
//取得修飾符
public mixed getValue(stdclass object)
//取得該屬性值
public void setValue(stdclass object, mixed value)
//設置該屬性值
public ReflectionClass getDeclaringClass()
//取得定義該屬性的類
public string getDocComment()
//取得該屬性的注釋
}


⑧ReflectionExtension類
php
class ReflectionExtension implements Reflector {
final private __clone()
public __construct(string name)
public string __toString()

public static string export()
//導出該擴展的所有信息
public string getName()
//取得該擴展的名字
public string getVersion()
//取得該擴展的版本
public ReflectionFunction[] getFunctions()
//取得該擴展的所有函數
public array getConstants()
//取得該擴展的所有常量
public array getINIEntries()
//取得與該擴展相關的,在php.ini中的指令信息
public ReflectionClass[] getClasses()
public array getClassNames()
}

PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美精品xxxx另类| 亚洲春色另类小说| 日韩av快播网址| 亚洲国产天堂网精品网站| 日韩在线观看网站| 亚洲欧美精品一区| 久久精品一本久久99精品| 中文日韩在线视频| 久久成人免费视频| 午夜精品久久久久久久白皮肤| 欧美精品情趣视频| 亚洲第一二三四五区| 亚洲人成网站在线播| 亚洲va欧美va国产综合剧情| 久久夜色精品亚洲噜噜国产mv| 国产视频自拍一区| 精品人伦一区二区三区蜜桃免费| 精品少妇v888av| 欧美日韩不卡合集视频| 国产精品入口日韩视频大尺度| 国产精品三级久久久久久电影| 大荫蒂欧美视频另类xxxx| 亚洲free性xxxx护士hd| 尤物yw午夜国产精品视频| 亚洲激情视频在线播放| 日韩精品在线视频观看| 国产日韩av高清| 亚洲精品一区久久久久久| 国内精品久久久久影院优| 国模视频一区二区三区| 亚洲人午夜精品| 欧美激情奇米色| 久久综合免费视频| 久久精品99国产精品酒店日本| 国产精品视频免费在线| 精品国偷自产在线视频99| 91精品视频大全| 亚洲精品美女久久| 国产精品美女主播在线观看纯欲| 成人欧美一区二区三区在线湿哒哒| 色综合天天综合网国产成人网| 亚洲午夜女主播在线直播| 国产欧美日韩精品丝袜高跟鞋| 欧美成人免费网| 国内外成人免费激情在线视频网站| 亚洲综合小说区| 欧美日韩亚洲视频| 91国内揄拍国内精品对白| 久久成人精品视频| 国产剧情久久久久久| 久久久久久国产精品三级玉女聊斋| 日韩视频在线免费观看| 国产精品久久久亚洲| 亚洲欧洲av一区二区| 成人激情电影一区二区| 成人激情免费在线| 亚洲国产三级网| 亚洲欧美国产精品| 日韩电影在线观看永久视频免费网站| 亚洲乱码国产乱码精品精天堂| 国产精品久久综合av爱欲tv| 欧美激情成人在线视频| 青青a在线精品免费观看| 亚洲精品国偷自产在线99热| 欧洲日本亚洲国产区| 亚洲精品国精品久久99热| 色小说视频一区| 在线精品91av| 国产97色在线|日韩| 色偷偷噜噜噜亚洲男人的天堂| 欧美一区二区三区艳史| 国产在线精品一区免费香蕉| 久久久免费观看视频| 欧美性猛交视频| 亚洲视频在线观看视频| 日韩中文字幕国产精品| 亚洲欧美国产精品| 亚洲电影免费观看高清| 亚洲国产精品人人爽夜夜爽| 欧美不卡视频一区发布| 午夜免费在线观看精品视频| 久久综合免费视频| 国产高清视频一区三区| 亚洲精品视频播放| 国产精品扒开腿做爽爽爽男男| 精品久久久av| 国产成人福利视频| 成人在线观看视频网站| 九九九热精品免费视频观看网站| 亚洲v日韩v综合v精品v| 久久久国产影院| 国产91精品黑色丝袜高跟鞋| 欧美亚洲国产成人精品| 国产在线拍偷自揄拍精品| 欧美精品18videosex性欧美| 亚洲国产精品久久久久久| 日韩在线视频国产| 麻豆国产精品va在线观看不卡| 亚洲男人av在线| 久久久亚洲天堂| 欧美精品激情在线| 美日韩丰满少妇在线观看| 久久久精品网站| 欧美激情精品久久久久久大尺度| 岛国视频午夜一区免费在线观看| 日本成人黄色片| 成人国内精品久久久久一区| 国产99视频精品免视看7| 国产精品九九九| 国产成人精品a视频一区www| 91久久嫩草影院一区二区| 亚洲欧美精品中文字幕在线| 九九热这里只有精品免费看| 欧美激情网站在线观看| 欧美尺度大的性做爰视频| 在线播放日韩欧美| 97久久精品在线| www.精品av.com| 午夜精品久久久久久久白皮肤| 日韩av中文字幕在线免费观看| 成人中文字幕在线观看| 欧美精品videos另类日本| 国产亚洲精品成人av久久ww| 欧美老女人bb| 成人有码视频在线播放| 国产精品吴梦梦| 亚洲在线视频福利| 欧美特级www| 九色精品美女在线| 亚洲人成欧美中文字幕| 欧美性猛交丰臀xxxxx网站| 日韩国产精品视频| 欧美一区二区三区四区在线| 欧美精品videosex极品1| 亚洲xxx视频| 亚洲xxx自由成熟| 亚洲美女免费精品视频在线观看| 国产91久久婷婷一区二区| 伊人伊成久久人综合网小说| 国产在线观看不卡| 欧洲精品毛片网站| 91午夜理伦私人影院| 国产精品精品一区二区三区午夜版| 日韩av综合中文字幕| 亚洲美女福利视频网站| 欧美日韩另类在线| 日韩免费在线电影| 日韩av第一页| 精品高清一区二区三区| 日韩免费电影在线观看| 亚洲第一综合天堂另类专| 久久久久久久久久亚洲| 午夜精品三级视频福利| 国产精品久久久久久久av电影| 国产成人精品在线视频| 国产精品美女www| 国产丝袜一区二区| 国产有码在线一区二区视频| 欧美色欧美亚洲高清在线视频| 国产精品久久久久久久美男| 亚洲视频欧洲视频| 欧美色欧美亚洲高清在线视频| 亚洲黄色免费三级| 色在人av网站天堂精品|