一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP5魔術方法應用淺析

  從php 5以后的版本,php中的類就可以使用魔術方法了。其規定以兩個下劃線(__)開頭的方法都保留為魔術方法,所以建議大家函數名最好不用__開頭,除非是為了重載已有的魔術方法。

  1、__get、__set

  這兩個方法是為在類和他們的父類中沒有聲明的屬性而設計的。

  ◆__get($property)當調用一個未定義的屬性時,此方法會被觸發,傳遞的參數是被訪問的屬性名。

  ◆__set($property,$value )給一個未定義的屬性賦值時,此方法會被觸發,傳遞的參數是被設置的屬性名和值。

  這里的沒有聲明包括當使用對象調用時,訪問控制為proteced,private的屬性(即沒有權限訪問的屬性)。

  2、__isset、__unset

  ◆__isset($property)當在一個未定義的屬性上調用isset()函數時調用此方法。

  ◆__unset($property)當在一個未定義的屬性上調用unset()函數時調用此方法。

  與__get方法和__set方法相同,這里的沒有聲明包括當使用對象調用時,訪問控制為proteced,private的屬性(即沒有權限訪問的屬性)。

  3、__call

  __call($method,$arg_array)當調用一個未定義的方法是調用此方法。

  這里的未定義的方法包括沒有權限訪問的方法;如果方法不存在就去父類中找這個方法,如果父類中也不存在就去調用本類的__call()方法,如果本類中不存在__call()方法就去找父類中的__call()方法。

  4、__autoload

  __autoload 函數,它會在試圖使用尚未被定義的類時自動調用。通過調用此函數,腳本引擎在 php 出錯失敗前有了最后一個機會加載所需的類。
  如果要定義一個全局的自動加載類,則必須用spl_autoload_register()方法將處理類注冊到php標準庫:

   1. <?php      
2. class Loader
3. {
4. static function autoload_class($class_name)
5. {
6. //尋找正確的$class_name類,并引入,沒有則拋出異常
7. }
8. }
9.
10. /**
11. * 設置對象的自動載入
12. * spl_autoload_register — Register given function as __autoload() implementation
13.
*/
14. spl_autoload_register(array(‘Loader’, ‘autoload_class’));
15. $a = new Test();
//
Test沒用require就實例化,實現自動加載,很多框架就用這種方法自動加載類

it知識庫PHP5魔術方法應用淺析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 一级寡妇乱色毛片全场免费 | 久久亚洲精品成人 | 亚洲一区亚洲二区亚洲三区 | 国产91精选在线观看麻豆 | 91久久精品国产免费一区 | 国产精品久久久久久福利69堂 | 91福利国产在线观看 | 免费国产怡红院在线观看 | 狠狠干综合 | 久久亚洲日本不卡一区二区 | 91香蕉福利一区二区三区 | 国内真实愉拍系列情侣自拍 | 欧美成人全部免费观看1314色 | 91精品导航在线观看 | 久久riav二区三区 | 久久精品国产无限资源 | 欧美另类极品videosbest视频 | 欧美成国产精品 | 日本一区二区三区高清在线观看 | 精品福利 | 中文字幕一二三区 | 成人开心激情 | 一本久道久综合久久鬼色 | 丁香六月在线 | 日韩色爱 | 一色屋免费视频 | 欧美日本韩国一区 | 精品国产免费第一区二区三区日韩 | 亚洲综合在线成人一区 | 可以看的毛片 | 日韩字幕无线乱码 | 精品91麻豆免费免费国产在线 | 久久狠狠第一麻豆婷婷天天 | 97精品久久久久中文字幕 | 国产在线一区二区三区四区 | 久久国产精品99久久久久久牛牛 | 中文字幕亚洲日韩无线码 | 国产成人亚洲欧美激情 | 亚色在线观看 | 日韩一区二区三区免费视频 | 精品久久久久久中文字幕 |