多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > php中__get()和__set()用法介紹

php中__get()和__set()用法介紹

來源:程序員人生   發(fā)布時間:2013-10-18 12:29:13 閱讀次數(shù):2931次

想要對對象的屬性進行一些設(shè)置,如果一個一個設(shè)置,會比較麻煩,這時可以使用對象的處理器函數(shù)__get()和__set(),不過使用這兩個方法的前提,屬性需要是protect或private的,如下例:

實例代碼如下:

  1.  class Person 
  2.  private $__data = array(); 
  3.  
  4.  public function __get($property
  5.  { 
  6.   if (isset($this->__data[$property])) 
  7.   { 
  8.    return $this->__data[$property]; 
  9.   } 
  10.   else 
  11.   { 
  12.    return false; 
  13.   } 
  14.  } 
  15.  
  16.  public function __set($property$value
  17.  { 
  18.   $this->__data[$property] = $value
  19.  } 
  20. }  

__set()和__get()方法是針對protect或private屬性的,這樣可以做到在外界不能直接訪問屬性,而通過public定義的__set()和__get()方法卻可以輕易訪問它,同事這兩個方法對屬性的操作通用性也比較高,也可以限制對象的屬性的合法性,只有屬于$__data數(shù)組中的屬性,才可以進行設(shè)置,可以防止外界直接對屬性進行設(shè)置.但是使用__set()和__get()也有些不足之處.第一,這兩個方法只會捕捉私有或受保護的屬性,即是外界沒有訪問權(quán)限的屬性,這樣php會報一個致命錯誤;第二,這兩個方法破壞了屬性的繼承性.如果父對象中有一個__set()方法,而在子類中又實現(xiàn)了自己的__get()方法,那么對象就不會正常的運行,因為父對象的__get()方法是永遠調(diào)不到的,而且要想檢測重寫的屬性是否存在也不能得到的,因為它不會調(diào)用__get()方法.見到有人通過實現(xiàn)__isset()和__unset()來解決上面的問題.代碼如下:

實例代碼如下:

  1. public function __isset($property
  2.  if (isset($this->data[$property])) 
  3.  { 
  4.   return true; 
  5.  } 
  6.  else 
  7.  { 
  8.   return false; 
  9.  } 
  10.  
  11. public function __unset($property
  12.  if (isset($this->data[$property])) 
  13.  { 
  14.   return unset($this->data[$property]); 
  15.  } 
  16.  else 
  17.  { 
  18.   return false; 
  19.  } 
  20. }  

使用__isset()和__unset()則能保證屬性是否真正存在,不過這兩個方法只有在PHP5.1后才有效.

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: japanese强迫第一次护士 | 欧美极品jiizzhd欧美 | 最近最新中文字幕免费大全 | 国产亚洲美女精品久久久久 | 手机看片福利 | 国产在线精品福利一区二区三区 | 羞羞人成午夜爽爽影院 | 欧美一级毛片欧美一级无片 | 亚洲国产成人精品青青草原100 | 亚洲另类视频 | 久久精品www| 欧美亚洲国产精品 | 岛国视频在线播放 | 亚洲人成网站在线观看播放青青 | 日本欧美视频 | 亚洲人在线观看 | 在线观看亚洲人成网站 | 韩日一区二区三区 | 全免费a级毛片免费看不卡 全网毛片 | 国产一区三区二区中文在线 | 中文字幕中韩乱码亚洲大片 | 天天综合网天天做天天受 | 色哟哟www网站入口成人学校 | 日本一区二区三区不卡在线看 | 久久精品无码一区二区三区 | 黄色的视频网站在线观看 | 看一级特黄a大片日本片 | 亚洲成人国产精品 | 中文字幕不卡高清免费 | 亚洲视频在线观看网址 | 中文在线播放 | 精品一区二区三区在线视频观看 | 免费观看欧美性一级 | 欧美一区二区三区在线观看免费 | 成人午夜在线 | 国产视频欧美 | 男人午夜视频在线观看 | 在线啪| 国产一区二区三区在线看 | xxx.xxx日本| 看片在线麻豆免费 |