PHP學習筆記——10.魔術方法

來源:互聯網
上載者:User

標籤:

1.定義

  是指在某些特定情況下會自動調用的方法

  PHP提供了多個魔術方法,都是以__開頭的

2.構造方法 __construct

  當執行個體化對象時,會自動調用該方法
  可用於在執行個體化對象時傳參,以控制類的屬性

  class 類名 {
    private 屬性名稱 = null;
    public function __construct ($形參) {
      $this -> 屬性名稱 = $形參;
    }
  }
  $對象 = new 類名(‘實參‘);
  echo $對象 -> 屬性名稱;

3.析構方法 __destruct

  當使用unset()銷毀對象、為對象賦予其他值或頁面執行完後會調用該方法

4.自動載入 __autoload

  當執行個體化針對的類未載入到當前檔案中時會自動調用該方法
  且會將類名傳入作為參數

  function __autoload ($class) {
    require (‘./‘. $class .‘.php‘);
  }
  $對象 = new 類名();

  注意:
  類的聲明是全域有效(哪怕在函數的內部)
  可使用spl_autoload_regsite(‘方法名‘)將自訂方法
  註冊為具有“自動載入”功能的方法

4.其它
  方法名調用條件
  __clone()當使用clone()複製對象時
  __get($形參)當訪問非公用/未定義的屬性時
  __set($形參1,$形參2)當修改非公用/添加未定義的屬性時
  __call($形參1,$形參2)當訪問非公用/未定義的方法時
  __callStatic($形參1,$形參2)當訪問非公用/未定義的靜態方法時
  __isset()當對非公用/未定義的屬性使用isset()時
  __unset()當對非公用/未定義的屬性使用unset()時

  注意:這些魔術方法在編寫架構底層應用時,可以起到非常重要的作用

 

@zhnoah
出處:http://www.cnblogs.com/zhnoah/
本文著作權歸本人和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連 
接,否則保留追究法律責任的權利。

PHP學習筆記——10.魔術方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.