php面向對象(四)
php中的重載技術
通常面向對象語言的重載技術
在一個類中有多個同名方法,每個方法的參數不同,這種現象稱為重載。
參數的不同:個數不同,類型不同,順序不同。
在php中,一個類中不可以定義多個同名方法(這是直接語法錯誤),因此php重載有特殊的意義;
屬性重載:如果使用一個不存在的屬性,就會自動去調用預先設計好的某個方法;
取值:$v1 = 對象->屬性;======如果不存在======》自動調用類中的__get()方法
賦值:對象->屬性=值;======如果不存在========》自動調用類中的__set()方法
判斷是否存在:issrt(對象->屬性;)==如果不存在=》自動調用類中的__isset()方法
銷毀:unset(對象->屬性;)======如果不存在===》自動調用類中的__unset()方法
//前提是類中要預先定義好這些
當使用一個對象(類)調用一個不存在的靜態方法時,會自動去調用預先定義好的:__callStaric 方法,其中必須。帶兩個參數。
__get(), __set(), __isset(), __unset(), __call(), __callstatic();這幾個方法稱為魔術方法。
方法重載:如果使用一個不存在的方法,就會自動調用類中預先定義好的某個方法處理;
接口interface
接口是抽象類的特殊例子:有接口常量,還有抽象方法。
接口中只有最簡單的特性信息:接口常量(就是常量),抽象方法(只有方法頭,下級去實現)
接口的作用:接口可以看做抽象類的更高層的抽象規範,不考慮接口常量的話,相當於給下級做什麽事,怎麽做下級自己去完成。
php面向對象(四)