bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

PHPReflectionAPI功能的詳細(xì)介紹-創(chuàng)新互聯(lián)

這篇文章主要講解了“PHP Reflection API功能的詳細(xì)介紹”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“PHP Reflection API功能的詳細(xì)介紹”吧!

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿(mǎn)足客戶(hù)于互聯(lián)網(wǎng)時(shí)代的無(wú)棣網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

PHP Reflection API是PHP5才有的新功能,它是用來(lái)導(dǎo)出或提取出關(guān)于類(lèi)、方法、屬性、參數(shù)等的詳細(xì)信息,包括注釋。

PHP Reflection 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 { }

具體API說(shuō)明:

①Reflection類(lèi)

<?php
class Reflection
{
  public static mixed export(Reflector r [,bool return])
  //導(dǎo)出一個(gè)類(lèi)或方法的詳細(xì)信息
  public static array getModifierNames(int modifiers)
  //取得修飾符的名字
}
?>

②ReflectionException類(lèi)

該類(lèi)繼承標(biāo)準(zhǔn)類(lèi),沒(méi)特殊方法和屬性。

③ReflectionFunction類(lèi)

<?php
class ReflectionFunction implements Reflector
{
  final private __clone()
  public object __construct(string name)
  public string __toString()
  public static string export()
  //導(dǎo)出該函數(shù)的詳細(xì)信息
  public string getName()
  //取得函數(shù)名
  public bool isInternal()
  //測(cè)試是否為系統(tǒng)內(nèi)部函數(shù)
  public bool isUserDefined()
  //測(cè)試是否為用戶(hù)自定義函數(shù)
  public string getFileName()
  //取得文件名,包括路徑名
  public int getStartLine()
  //取得定義函數(shù)的起始行
  public int getEndLine()
  //取得定義函數(shù)的結(jié)束行
  public string getDocComment()
  //取得函數(shù)的注釋
  public array getStaticVariables()
  //取得靜態(tài)變量
  public mixed invoke(mixed* args)
  //調(diào)用該函數(shù),通過(guò)參數(shù)列表傳參數(shù)
  public mixed invokeArgs(array args)
  //調(diào)用該函數(shù),通過(guò)數(shù)組傳參數(shù)
  public bool returnsReference()
  //測(cè)試該函數(shù)是否返回引用
  public ReflectionParameter[] getParameters()
  //取得該方法所需的參數(shù),返回值為對(duì)象數(shù)組
  public int getNumberOfParameters()
  //取得該方法所需的參數(shù)個(gè)數(shù)
  public int getNumberOfRequiredParameters()
  //取得該方法所需的參數(shù)個(gè)數(shù)
}
?>

④ReflectionParameter類(lèi):

<?php
class ReflectionParameter implements Reflector
{
  final private __clone()
  public object __construct(string name)
  public string __toString()
  public static string export()
  //導(dǎo)出該參數(shù)的詳細(xì)信息
  public string getName()
  //取得參數(shù)名
  public bool isPassedByReference()
  //測(cè)試該參數(shù)是否通過(guò)引用傳遞參數(shù)
  public ReflectionClass getClass()
  //若該參數(shù)為對(duì)象,返回該對(duì)象的類(lèi)名
  public bool isArray()
  //測(cè)試該參數(shù)是否為數(shù)組類(lèi)型
  public bool allowsNull()
  //測(cè)試該參數(shù)是否允許為空
  public bool isOptional()
  //測(cè)試該參數(shù)是否為可選的,當(dāng)有默認(rèn)參數(shù)時(shí)可選
  public bool isDefaultValueAvailable()
  //測(cè)試該參數(shù)是否為默認(rèn)參數(shù)
  public mixed getDefaultValue()
  //取得該參數(shù)的默認(rèn)值
}
?>

⑤ReflectionClass類(lèi):

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

⑥ReflectionMethod類(lèi):

<?php
class ReflectionMethod extends ReflectionFunction
{
  public __construct(mixed class, string name)
  public string __toString()
  public static string export()
  //導(dǎo)出該方法的信息
  public mixed invoke(stdclass object, mixed* args)
  //調(diào)用該方法
  public mixed invokeArgs(stdclass object, array args)
  //調(diào)用該方法,傳多參數(shù)
  public bool isFinal()
  //測(cè)試該方法是否為final
  public bool isAbstract()
  //測(cè)試該方法是否為abstract
  public bool isPublic()
  //測(cè)試該方法是否為public
  public bool isPrivate()
  //測(cè)試該方法是否為private
  public bool isProtected()
  //測(cè)試該方法是否為protected
  public bool isStatic()
  //測(cè)試該方法是否為static
  public bool isConstructor()
  //測(cè)試該方法是否為構(gòu)造函數(shù)
  public bool isDestructor()
  //測(cè)試該方法是否為析構(gòu)函數(shù)
  public int getModifiers()
  //取得該方法的修飾符
  public ReflectionClass getDeclaringClass()
  //取得該方法所屬的類(lèi)
  // 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類(lèi):

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

⑧ReflectionExtension類(lèi)

<?php
class ReflectionExtension implements Reflector {
  final private __clone()
  public __construct(string name)
  public string __toString()
  public static string export()
  //導(dǎo)出該擴(kuò)展的所有信息
  public string getName()
  //取得該擴(kuò)展的名字
  public string getVersion()
  //取得該擴(kuò)展的版本
  public ReflectionFunction[] getFunctions()
  //取得該擴(kuò)展的所有函數(shù)
  public array getConstants()
  //取得該擴(kuò)展的所有常量
  public array getINIEntries()
  //取得與該擴(kuò)展相關(guān)的,在php.ini中的指令信息
  public ReflectionClass[] getClasses()
  public array getClassNames()
}

?>

使用例子:

<?php
class Person{
 private $_name;
 
 public $age;
 
 public function __construct(){
 $this->sex = "male";
 }
 
 public function action(){
 echo "來(lái)自https://www.jb51.net的測(cè)試";
 }
}
 
$class = new ReflectionClass('Person');
//獲取屬性
foreach($class->getProperties() as $property) {
  echo $property->getName()."\n";
}
//獲取方法
print_r($class->getMethods());
 
$p1 = new Person();
$obj = new ReflectionObject($p1);
 
//獲取對(duì)象和類(lèi)的屬性
print_r($obj->getProperties());

感謝各位的閱讀,以上就是“PHP Reflection API功能的詳細(xì)介紹”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)PHP Reflection API功能的詳細(xì)介紹這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前文章:PHPReflectionAPI功能的詳細(xì)介紹-創(chuàng)新互聯(lián)
URL地址:http://vcdvsql.cn/article22/ddpgjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作動(dòng)態(tài)網(wǎng)站Google服務(wù)器托管用戶(hù)體驗(yàn)外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司