PHP類的靜態(tài)(static)方法和靜態(tài)(static)變量使用介紹
更新時(shí)間:2012年02月19日 20:51:13 作者:
PHP類的靜態(tài)(static)方法和靜態(tài)(static)變量使用介紹,學(xué)習(xí)php的朋友可以看下
在php中,訪問類的方法/變量有兩種方法:
1. 創(chuàng)建對(duì)象$object = new Class(),然后使用”->”調(diào)用:$object->attribute/function,前提是該變量/方法可訪問。
2. 直接調(diào)用類方法/變量:class::attribute/function,無論是靜態(tài)/非靜態(tài)都可以。但是有前提條件:
A. 如果是變量,需要該變量可訪問。
B. 如果是方法,除了該方法可訪問外,還需要滿足:
b1) 如果是靜態(tài)方法,沒有特殊條件;
b2) 如果是非靜態(tài)方法,需要改方法中沒有使用$this,即沒有調(diào)用非靜態(tài)的變量/方法,當(dāng)然,調(diào)用靜態(tài)的變量/方法沒有問題。
然后我們?cè)倏匆幌率褂?object->… 和使用class::… 都有什么區(qū)別:
1. 使用$object->… ,需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對(duì)象;
2. 使用class::… 調(diào)用靜態(tài)方法/變量,不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對(duì)象;
3. 使用class::… 調(diào)用非靜態(tài)方法/變量,也不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對(duì)象。
然后奇怪的地方就出來了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?
差異還是顯然存在的,如下:
1. 靜態(tài)變量
靜態(tài)成員只保留一個(gè)變量值,而這個(gè)變量值對(duì)所有的實(shí)例都是有效,也就是說,所有的實(shí)例共享這個(gè)成員。
2. 靜態(tài)方法
靜態(tài)方法可以直接使用class::… 來調(diào)用,而非靜態(tài)方法需要滿足一定限制條件才能使用class::.. 的方法調(diào)用,如之前所述
1. 創(chuàng)建對(duì)象$object = new Class(),然后使用”->”調(diào)用:$object->attribute/function,前提是該變量/方法可訪問。
2. 直接調(diào)用類方法/變量:class::attribute/function,無論是靜態(tài)/非靜態(tài)都可以。但是有前提條件:
A. 如果是變量,需要該變量可訪問。
B. 如果是方法,除了該方法可訪問外,還需要滿足:
b1) 如果是靜態(tài)方法,沒有特殊條件;
b2) 如果是非靜態(tài)方法,需要改方法中沒有使用$this,即沒有調(diào)用非靜態(tài)的變量/方法,當(dāng)然,調(diào)用靜態(tài)的變量/方法沒有問題。
然后我們?cè)倏匆幌率褂?object->… 和使用class::… 都有什么區(qū)別:
1. 使用$object->… ,需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對(duì)象;
2. 使用class::… 調(diào)用靜態(tài)方法/變量,不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對(duì)象;
3. 使用class::… 調(diào)用非靜態(tài)方法/變量,也不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對(duì)象。
然后奇怪的地方就出來了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?
差異還是顯然存在的,如下:
1. 靜態(tài)變量
靜態(tài)成員只保留一個(gè)變量值,而這個(gè)變量值對(duì)所有的實(shí)例都是有效,也就是說,所有的實(shí)例共享這個(gè)成員。
2. 靜態(tài)方法
靜態(tài)方法可以直接使用class::… 來調(diào)用,而非靜態(tài)方法需要滿足一定限制條件才能使用class::.. 的方法調(diào)用,如之前所述
您可能感興趣的文章:
- php中static靜態(tài)變量的使用方法詳解
- php面向?qū)ο笾衧tatic靜態(tài)屬性和靜態(tài)方法的調(diào)用
- PHP static局部靜態(tài)變量和全局靜態(tài)變量總結(jié)
- PHP中的靜態(tài)變量及static靜態(tài)變量使用詳解
- php中static 靜態(tài)變量和普通變量的區(qū)別
- PHP Static延遲靜態(tài)綁定用法分析
- php面向?qū)ο笾衧tatic靜態(tài)屬性與方法的內(nèi)存位置分析
- php之static靜態(tài)屬性與靜態(tài)方法實(shí)例分析
- PHP中Static(靜態(tài))關(guān)鍵字功能與用法實(shí)例分析
相關(guān)文章
php實(shí)現(xiàn)接口api數(shù)據(jù)簽名及驗(yàn)簽
api數(shù)據(jù)簽名作用就是通過使用簽名可以驗(yàn)證數(shù)據(jù)在傳輸過程中是否被篡改或修改,下面小編就來為大家介紹一下php如何實(shí)現(xiàn)接口api數(shù)據(jù)簽名及驗(yàn)簽吧2023-11-11PHP 實(shí)現(xiàn) WebSocket 協(xié)議原理與應(yīng)用詳解
這篇文章主要介紹了PHP 實(shí)現(xiàn) WebSocket 協(xié)議,結(jié)合具體實(shí)例形式較為詳細(xì)的分析了websocket協(xié)議原理、以及PHP具體應(yīng)用相關(guān)操作技巧,需要的朋友可以參考下2020-04-04Ajax請(qǐng)求PHP后臺(tái)接口返回信息的實(shí)例代碼
今天小編就為大家分享一篇Ajax請(qǐng)求PHP后臺(tái)接口返回信息的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08PHP基于文件存儲(chǔ)實(shí)現(xiàn)緩存的方法
這篇文章主要介紹了PHP基于文件存儲(chǔ)實(shí)現(xiàn)緩存的方法,實(shí)例分析了smarty模板中php通過文件存儲(chǔ)來實(shí)現(xiàn)緩存的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07PHP學(xué)習(xí)筆記之?dāng)?shù)組篇
其實(shí)PHP中的數(shù)組和JavaScript中的數(shù)組很相似,就是一系列鍵值對(duì)的集合。2011-06-06PHP中將數(shù)組轉(zhuǎn)成XML格式的實(shí)現(xiàn)代碼
網(wǎng)上找的一段代碼! 然后我自己根據(jù)php DOMDocument又寫了一段代碼,需要的朋友可以參考下。2011-08-08PHP寫入WRITE編碼為UTF8的文件的實(shí)現(xiàn)代碼
可以把uft-8格式的文件,寫到文本中的實(shí)現(xiàn)代碼2008-07-07