第20章面向?qū)ο蟮墓ぞ達(dá)第1頁
第20章面向?qū)ο蟮墓ぞ達(dá)第2頁
第20章面向?qū)ο蟮墓ぞ達(dá)第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第 20 章 面象的工具學(xué)習(xí)要點:OOP 的魔術(shù)方法類函數(shù)和對象函數(shù)OOP 的反射 API主講教師:合作:http:講師博客:h恢/恢通過類和方法等語言結(jié)構(gòu)支持面象編程。同時也通過對象相關(guān)的函數(shù)和內(nèi)置類為面象提供廣泛支持。一OOP的魔術(shù)方法引入了 autoload()內(nèi)置方法來自動包含類文件。 autoload()應(yīng)該被寫成單個參數(shù)的方法。當(dāng)引擎遇到試圖實例化未知類的操作時,會調(diào)用 autoload()方法,并將類名當(dāng)作字符串參數(shù)傳遞給它。function autoload($_claame) require $_claame.class.;$demo = new Computer();采用了

2、 call()內(nèi)置方法來在的方法時,會自動調(diào)用 call()方法。對象調(diào)用方法時產(chǎn)生的錯誤。當(dāng)對象調(diào)用一個不存private function call($_methodName,$args) echo $_methodName.方法不存在;pr_r($args);$computer-go(我,1,知道);使用 toString()內(nèi)置方法來打印對象的。沒有使用 toString()的對象是產(chǎn)生一個錯誤,當(dāng)打印對象的時候會自動調(diào)用 toString()方法。class Computer private function toString() return 打印對象;echComputer();

3、可以在類中定義一個 clone()內(nèi)置方法來調(diào)整對象的克隆行為。當(dāng)一個對象被克隆的時候自動執(zhí)行 clone()方法,而class Computer public $_name ;public function clone() $this-_name = ibm;的對象可以在其方法體內(nèi)進(jìn)行調(diào)整。$computer1 = new Computer();$computer1-_name = dell;$computer2 = clone $computer1; echo $computer2-_name;二類函數(shù)和對象函數(shù)提供了一系列強大的函數(shù)來檢測類和對象。以便在第使用的是哪個。系統(tǒng),運行時知道正

4、在1.class_exists()函數(shù)接受表示類的字符串,檢查并返回布爾值。如果類存在,返回true,否則返回false。echo class_exists(Computer);2.get_class()函數(shù)獲取對象的類名,如果不是對象,則返回false。echo get_class($computer);3.get_class_methods()函數(shù)獲取類中的方法(公共的),以數(shù)組的形式返回出來。pr_r(get_class_methods($computer);4.get_class_vars()函數(shù)獲取類中的字段(公共的),以數(shù)組的形式返回出來pr_r(get_class_vars(Co

5、mputer);5.get_parent_class()函數(shù)獲取子類的父類,如果沒有返回false。echo get_parent_class(puter);6.erface_exists()函數(shù)確定接口是否存在,如果存在返回true,否則返回false。echoerface_exists(Computer);7.is_a()函數(shù)確定對象是否是類或者是否是這類的父類時,返回ture,否則返回false。echo is_a($computer,Computer);8.is_subclass_of()函數(shù)確定對象是否是類的子類,是返回ture,否則返回false。echo is_subclass_

6、of($puter,Computer);9.method_exists()函數(shù)確定對象的方法是否存在,是返回ture,否則返回false。echo method_exists($computer,_run);三OOP的反射API5的類和對象函數(shù)并沒有告訴類內(nèi)部的所有一切,而只是了它們的公共成員。要充分了解一個類,需要知道其私有成員和保護成員,還要知道其方法所期望的參數(shù)。對此,使用反射API。1.獲得反射API的轉(zhuǎn)儲信息$rc = new ReflectionClass(Computer); Reflection:export($rc);2.獲得內(nèi)置的類庫的信息Reflection:export(new ReflectionClass(Reflection);3.獲取類里的某個元素$_rc = new ReflectionClass(Com

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論