php基礎知識2

屬性跟方法的重載

__get() __set()

當 $name 未定義 或者修飾符爲 private 或者protected 時候。給對象$name屬性賦值,因爲$name不存在,所以會調用__set()方法。獲取 對象的 $name 時候,因爲屬性不存在,所以會調用 __get()方法。

 下面是一個更加能說明使用的例子。   array_key_exists() 方法:檢查某個數組中是否存在某個鍵

__call($function_name,$args) 方法會在對象調用某不存在的方法的時候被調用

第一個參數會返回 當前 不存在的方法的名字,第二個參數會接收當前不存在的函數的參數。

 

使用數組訪問的重載

數組的方式訪問對象中的屬性。實現arrayAccess方法,並重寫四個方法。

迭代器

普通的類的屬性是可以直接foreach被遍歷的。

但是對於複雜的數據,比如班級類中存在學生對象的數組。用forearch無法獲取到學生的屬性。這就用到了迭代器。

班級類中實現iterator接口,通過指針操作了 $stu_list數組。所以foreach遍歷班級的時候會自動去遍歷 $stu_list數組。只需要實現接口添加相應操作,而不需要去知道php內部的具體實現方法。

遍歷班級,獲取相應stu,通過stu就可以獲取相應的值。這裏__toString()方法。在打印對象時候,默認打印當前對象name

下面一個例子:打印數 min至max 的平方數。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章