本文章詳細的介紹一下關于PHP5類中的屬性與類方法,有需要學習的朋友可參考消息.
PHP5類方法
過程:過程是編制程序時定義的一個語句序列,用來完成某種指定的操作.
函數(shù):函數(shù)有返回值,也是定義的語句序列.
方法:在面向?qū)ο蟾拍钪?類里面的一段語句序列.
一般來說,在面向?qū)ο蟾拍钪?函數(shù)和方法兩個名詞是通用的.
通過方法讀取屬性
下面的例子將屬性設置為private ,同時聲明了public的getName()方法,用來獲取屬性$name的值,調(diào)用getName()方法就會通過 return $this->name 返回 $name 的值.
實例代碼如下:
注意:這里,方法內(nèi)部調(diào)用本地屬性時,使用 $this->name來獲取屬性.在這個例子中,設置了公開的getName()方法,即用戶只能獲取$name, 而無法改變他的值.這就是封裝的好處.
封裝指的是將對象的狀態(tài)信息(屬性)和行為(方法)捆綁為一個邏輯單元的機制.PHP5中通過將數(shù)據(jù)封裝、聲明為私有的(private),再提供一個或多個公開的(public)方法實現(xiàn)對該屬性的操作,以實現(xiàn)下述目的:
防止對封裝數(shù)據(jù)的未經(jīng)授權的訪問.使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以便地加入控制邏輯,限制對屬性的不合理操作;
有利于保證數(shù)據(jù)的完整性;
便于修改,增強代碼的可維護性;
方法的參數(shù)
通過方法定義時的參數(shù),可以向方法內(nèi)部傳遞變量.如下第5行,定義方法時定義了方法參數(shù)$_a.使用這個方法時,可以向方法內(nèi)傳遞參數(shù)變量.方法內(nèi)接受到的變量是局部變量,僅在方法內(nèi)部有效.可以通過向?qū)傩詡鬟f變量值的方式,讓這個變量應用于整個對象.
實例代碼如下:
如果聲明這個方法有參數(shù),而調(diào)用這個方法時沒有傳遞參數(shù),或者參數(shù)數(shù)量不足,系統(tǒng)會報出錯誤.如果參數(shù)數(shù)量超過方法定義參數(shù)的數(shù)量,PHP就忽略多于的參數(shù),不會報錯.可以在函數(shù)定義時為參數(shù)設定默認值. 在調(diào)用方法時,如果沒有傳遞參數(shù),將使用默認值填充這個參數(shù)變量.
實例代碼如下:
屬性的使用:通過引用變量的-> 符號調(diào)用變量指向?qū)ο蟮膶傩?在方法內(nèi)部通過 $this-> 符號調(diào)用同一對象的屬性.
實例代碼如下:
PHP5類中的屬性我們還可以改變屬性的值,當然要注意的改變屬性的值是通過public來修飾的我們修改一下這個例子:
實例代碼如下:
創(chuàng)建一個Person的對象,改變這個對象的屬性.為它命名,查看它的名字.你就是機器里面這個Person對象的上帝,按照你定義的規(guī)則,這個實實在在內(nèi)存中的Person對象被創(chuàng)建了,而且它有了可以改變的屬性.
屬性的初值
在PHP5中,在屬性定義可以不設置初值,或者賦予以下紅色類型的初值.PHP中簡單類型有8種,分別是:
四種標量類型:
布爾型(boolean)
整型(integer)
浮點型(float)(浮點數(shù),也作“double”)
字符串(string)
兩種復合類型:
數(shù)組(array)
對象(object)
最后是特殊類型:
資源(resource)