注釋: 1.對象可以使用foreach進(jìn)行遍歷,只能遍歷成員屬性。 2.僅能在外部遍歷對象的public屬性。 3.在類的內(nèi)部可以使用$this進(jìn)行遍歷
2.接口:先定義一個標(biāo)準(zhǔn)的寫法,讓某些類來實現(xiàn)接口的時候,必須要實現(xiàn)接口定義的所有函數(shù),是為了保證我們程序的標(biāo)準(zhǔn)化。
3.接口的寫法: (1)通過interface來定義一個借口。 (2)接口的函數(shù)必須不能包含函數(shù)體。 (3)接口的函數(shù)必須全部被類實現(xiàn)。 (4)接口定義的函數(shù)如果有參數(shù),那么實現(xiàn)類的函數(shù)也必須有參數(shù),如果參數(shù)有默認(rèn)值,那么實現(xiàn)類的函數(shù)也必須有默認(rèn)值。 (5)接口不能包含成員屬性。 (6)實現(xiàn)的類可以包含成員屬性,跟接口沒關(guān)系。 (7)接口的定義函數(shù)必須是public。
4.抽象類與抽象方法 (1)抽象跟接口差不多,不能被直接實例化。 (2)通過abstract class 關(guān)鍵詞來定義一個抽象類。 (3)抽象類可以像正常類一樣,包含成員屬性和成員方法。 (4)抽象類可以有至少一個抽象方法,抽象方法不能有函數(shù)體,而且定義抽象方法必須被繼承的類所實現(xiàn)。 (5)抽象方法通過abstract關(guān)鍵詞來定義。 (6)抽象類可以定義靜態(tài)成員方法,而且可以直接使用抽象類名來調(diào)用靜態(tài)方法,Leader::attack();,當(dāng)然繼承的類也可以。
5.trait: 寫法: (1)通過trait關(guān)鍵詞來定義。 (2)定義好之后其實和類一樣,同樣包含成員屬性和成員方法。 (3)trait不能夠直接被實例化,必須被其他的類使用,使用use關(guān)鍵詞來定義,重點是支持多個,實現(xiàn)類的多繼承。 (4)可以包含抽象方法。 (5)trait定義的方法沖突的時候,要使用insteadof來修正,只能使用一個,或者使用as起別名。
6.命名空間 (1)通過在類的上面使用namespace來定義一個命名空間。 (2)命名空間支持多級,像文件夾的結(jié)構(gòu)一樣。 (3)如果在同一文件中寫多個命名空間,范圍是從當(dāng)前的命名空間到下一個命名空間結(jié)束。 (4)當(dāng)使用命名空間之后,遇到相同的類名,可以直接使用use來說明調(diào)用的是哪個命名空間下面的類。 (例如:use 后面寫/Db/Bo/Db;最后是一個類名) (5)使用的時候,加上反斜杠代表從根命名空間開始查找,后面的叫做子集命名空間。
7.MVC:是一種構(gòu)建開發(fā)框架的思想,把整個項目分成三部分。 (1)頁面模板(利用模板引擎顯示頁面)———視圖(View) (2)控制器(控制操作數(shù)據(jù)庫,并輸出模板)——控制器(Controller) (3)數(shù)據(jù)操作(操作數(shù)據(jù)庫)——————-模型(Model)
新聞熱點
疑難解答