PHP 反射類學習記錄

2022-07-31 18:36:11 字數 3952 閱讀 7327

windows 

tp5參考文件  

新建乙個測試反射類 testreflection.php

<?php/**

* user: [一秋]

* date: 2017-11-23

* time: 16:29

* desc: 成功**於點滴 */

class

testreflection

public

function

add()

}

在新建 乙個類  test.php

public reflectionclass::__construct ( mixed$argument)

public

function

index()

返回結果是 

public static string reflectionclass::export ( mixed$argument[, bool$return= false ] )

public

function

index()

返回的結果是:

public mixed reflectionclass::getconstant ( string$name)

獲取定義過的乙個常量。

在testreflection 新增乙個常量

<?php/**

* user: [一秋]

* date: 2017-11-23

* time: 16:29

* desc: 成功**於點滴 */

class

testreflection

public

function

add()

}

test.php

<?php/**

* user: [一秋]

* date: 2017-11-23

* time: 15:59

* desc: 成功**於點滴 */

class

test

}

返回的結果是 

string(4) "wang"
這裡如果常量不存在 則返回false 

public array reflectionclass::getconstants ( void )

這裡的 getconstants 不要拼錯了。比上乙個方法多了乙個 s  

獲取某個類的全部已定義的常量,不管可見性如何定義。

本函式還未編寫文件,僅有引數列表。

<?php/**

* user: [一秋]

* date: 2017-11-23

* time: 15:59

* desc: 成功**於點滴 */

class

test

}

返回的結果是

array(1)
public reflectionmethod reflectionclass::getconstructor ( void )

獲取已反射的類的建構函式。

為了方便測試  這裡對映自身

<?php/**

* user: [一秋]

* date: 2017-11-23

* time: 15:59

* desc: 成功**於點滴 */

class

test

public

function

index()

}

返回的結果是

public array reflectionclass::getdefaultproperties ( void )

獲取類的預設屬性(包括了繼承的屬性)。

此函式沒有引數。

預設屬性的陣列,其鍵是屬性的名稱,其值是屬性的預設值或者在屬性沒有預設值時是null。 這個函式不區分靜態和非靜態屬性,也不考慮可見性修飾符。

<?php/**

* user: [一秋]

* date: 2017-11-23

* time: 15:59

* desc: 成功**於點滴 */

/*** 反射測試類

* class test */

class test extends

par /**

* 測試入口

* @param int $id 沒有id

*/public

function

index()

}class

par

返回的結果是

array(5)
public string reflectionclass::getdoccomment ( void )

從乙個類中獲取文件注釋。

warning

本函式還未編寫文件,僅有引數列表。

此函式沒有引數。

如果存在則返回文件注釋,否則返回false

<?php/**

* user: [一秋]

* date: 2017-11-23

* time: 15:59

* desc: 成功**於點滴 */

/*** 反射測試類

* class test */

class test extends

par /**

* 測試入口

* @param int $id 沒有id

*/public

function

index()}/*

* * class par */

class

par

返回結果是

public int reflectionclass::getendline ( void )

從使用者定義的類獲取其最後一行的行數。

此函式沒有引數。

返回使用者定義的類最後一行的行數,如果未知則返回false

/*

* * 測試入口

* @param int $id 沒有id

*/public

function

index()

返回結果是

int(39)
public reflectionextension reflectionclass::getextension ( void )

獲取已定義類的擴充套件的 reflectionextension 物件。

此函式沒有引數。

類所處的擴充套件的 reflectionextension 物件的表示,如果是使用者定義的類則返回null

/*

* * 測試入口

* @param int $id 沒有id

*/public

function

index()

返回的結果是

object(reflectionextension)#13 (1)
public string reflectionclass::getextensionname ( void )

獲取定義的類所在的擴充套件的名稱。

此函式沒有引數。

獲取定義的類所在的擴充套件的名稱,如果是使用者定義的類,則返回false

public

function

index()

返回的結果是

string(10) "reflection"

php 反射類簡介

php反射 反射是操縱物件導向范型中元模型的api,其功能十分強大,可幫助我們構建複雜,可擴充套件的應用。其用途如 自動載入外掛程式,自動生成文件,甚至可用來擴充php語言。php反射api由若干類組成,可幫助我們用來訪問程式的元資料或者同相關的注釋互動。借助反射我們可以獲取諸如類實現了那些方法,建...

php 反射學習

早知道php 有反射的概念一直沒抽出空來。今天看書裡面有個這玩意 弄個例子搞搞。不過似乎專案中用處不大。印象中似乎就 thinkphp 3.1 裡面的 控制器呼叫使用了反射 class person public function set name value public function get...

php學習記錄六 原生php建立類

1 新建乙個類檔案ini class.php 2 在檔案裡建立個類,這裡我新建乙個查詢個人使用者資訊的類 類名為personal class personal or id result mysqli query link,query if result echo retjson 402,查詢使用者資...