php類中靜態方法與靜態變數區別

來源:互聯網
上載者:User
本文介紹了php類中靜態方法與靜態變數的用法區別,如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態變數/方法,當然,調用靜態變數/方法沒有問題。

有關php靜態方法與靜態變數的用法。

在php中,訪問類的方法/變數有兩種方法:1、建立對象$object = new Class(),然後使用"->"調用:$object->attribute/function,前提是該變數/方法可訪問。2、直接調用類方法/變數:class::attribute/function,無論是靜態/非靜態都可以。但是有前提條件: A. 如果是變數,需要該變數可訪問。 B. 如果是方法,除了該方法可訪問外,還需要滿足: b1) 如果是靜態方法,沒有特殊條件; b2) 如果是非靜態方法,需要改方法中沒有使用$this,即沒有調用非靜態變數/方法,當然,調用靜態變數/方法沒有問題。

再看下使用$object->... 和使用class::... 都有什麼區別:1、使用$object->... ,需要執行建構函式建立對象;2、使用class::... 調用靜態方法/變數,不需要執行建構函式建立對象;3、用class::... 調用非靜態方法/變數,也不需要執行建構函式建立對象。

既然2和3都一樣,那靜態方法/變數存在還有什麼意義呢?差異:1、 靜態變數靜態成員只保留一個變數值,而這個變數值對所有的執行個體都是有效,即所有的執行個體共用這個成員。2、靜態方法靜態方法可以直接使用class::... 來調用,而非靜態方法需要滿足一定限制條件才能使用class::.. 的方法調用,如之前所述。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.