廣州學(xué)習(xí)php怎么樣?
發(fā)布時間:2019-09-05 廣州天琥教育 訪問 : 291面對面定向的三個主要特征:封裝、繼承和多態(tài)性。首先,對抽象的簡單理解:
當(dāng)我們之前定義一個類時,我們實際上提取了一類事物的共同屬性和行為,以形成一個物理模型(模板)。這種研究問題的方法叫做抽象。廣州學(xué)習(xí)php怎么樣?
一.導(dǎo)言
反射是Java程序開發(fā)語言的特征之一。它允許運行的Java程序自我檢查,或者“自我檢查”,并且可以直接操作程序的內(nèi)部屬性。這一特性可能不會在實際應(yīng)用中廣泛使用。
PHP完全支持從5.0開始的反射應(yīng)用編程接口。PHP反射可以用來在運行時觀察和修改程序的行為。面向反射的程序組件可以監(jiān)視一個范圍內(nèi)代碼的執(zhí)行,并且可以根據(jù)期望的目標(biāo)和相關(guān)的范圍修改自己。PHP5有一個完整的反射應(yīng)用編程接口,增加了逆向工程類、接口、函數(shù)、方法和擴展的能力。
二.概念
反射是指擴展和分析PHP程序,導(dǎo)出或呈現(xiàn)關(guān)于類、方法、屬性、參數(shù)等的詳細信息。,包括注釋。這種動態(tài)獲取信息和動態(tài)調(diào)用對象方法的功能稱為反射應(yīng)用編程接口。
三,PHP反射的基本語法
實現(xiàn)反射的方法有很多,可以通過實例化專門控制類的ReflectionClass類來實現(xiàn),或者在現(xiàn)有類實例的情況下直接實例化ReflectionMethod類來實現(xiàn)。原則如下:
以下是反射類和反射方法類的基本用法:
1.反思類
(1) $reflectClass =新的ReflectionCLaSS();
傳入類名字符串并返回控制目標(biāo)類的ReflectionClass類實例;
(2)$ ReflectClass-> GetConstant();
傳入類中定義的常量名稱返回常量值,類中所有定義的常量數(shù)組可以通過$ reflex類-> getconstants返回;
(3)$ class = $ ReflectClass-> NewInstance();
實例化類并返回目標(biāo)類實例;您還可以通過將$reflectClass->newInstanceArgs()傳遞到實例化的構(gòu)造函數(shù)參數(shù)中來實例化它;
2.反射式探傷法
(1) $reflectMethod =新的ReflectionMethod();
傳入方法名稱字符串,返回控制目標(biāo)方法的ReflectionMethod類的實例;
(2)$ parameters = $ ReflectMethod-> GetParameters();
獲取類所需的參數(shù)名,方法返回包含所有參數(shù)名的二維數(shù)組;
(3)$ name = $ parameters-> GetName();
返回要執(zhí)行的方法所需的參數(shù)數(shù)組的單個參數(shù)名,可以通過foreach循環(huán)一個接一個地獲取和分配;
(4)$反射方法->調(diào)用參數(shù)(,);
傳入類實例和方法參數(shù),執(zhí)行方法,并返回執(zhí)行結(jié)果。
3、反射類和反射方法中其他常用的用法:
ReflectionClass:
反射方法:
4.除了反射類(ReflectionClass)和反射方法(ReflectionMethod),我們還可以使用反射API的一些方法來實現(xiàn)類、環(huán)境變量和php服務(wù)擴展中的參數(shù)和屬性,如下所示:
四.反射在實際應(yīng)用中的應(yīng)用
1.反射可用于生成文檔和文件。它可以用來掃描文件中的類,并逐個生成描述文檔。
2.因為反射可以檢測類的內(nèi)部結(jié)構(gòu),所以它可以用作鉤子來實現(xiàn)插件功能;
3.它可以作為動態(tài)代理,在未知或不確定類名的情況下,動態(tài)生成和實例化一些類和執(zhí)行方法。
4.對于多次繼承的類,我們可以通過多次反射來探索基類的結(jié)構(gòu),或者使用遞歸反射來實例化所有繼承的類,這就是PHP依賴注入的原理。
優(yōu)勢
1.支持反射的語言提供了一些難以用低級語言實現(xiàn)的運行時特性。
2.在某種程度上可以避免硬編碼,提供靈活性和通用性。
3、可以作為第一類對象來查找和修改源代碼的結(jié)構(gòu)(如代碼塊、類、方法、協(xié)議等)。)。
4.一串符號語法(如JavaScript的eval()函數(shù))可以像源代碼語句一樣在運行時計算,然后匹配類或函數(shù)的字符串可以轉(zhuǎn)換為類或函數(shù)的調(diào)用或引用。
5.可以創(chuàng)建一個新的語言字節(jié)碼解釋器來賦予編程結(jié)構(gòu)新的含義或用途。