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,無(wú)論是靜態(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ì)象。
然后奇怪的地方就出來(lái)了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?
差異還是顯然存在的,如下:
1. 靜態(tài)變量
靜態(tài)成員只保留一個(gè)變量值,而這個(gè)變量值對(duì)所有的實(shí)例都是有效,也就是說(shuō),所有的實(shí)例共享這個(gè)成員。
2. 靜態(tài)方法
靜態(tài)方法可以直接使用class::… 來(lái)調(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,無(wú)論是靜態(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ì)象。
然后奇怪的地方就出來(lái)了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?
差異還是顯然存在的,如下:
1. 靜態(tài)變量
靜態(tài)成員只保留一個(gè)變量值,而這個(gè)變量值對(duì)所有的實(shí)例都是有效,也就是說(shuō),所有的實(shí)例共享這個(gè)成員。
2. 靜態(tài)方法
靜態(tài)方法可以直接使用class::… 來(lái)調(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)文章
smarty中先strip_tags過(guò)濾html標(biāo)簽后truncate截取文章運(yùn)用
strip_tags() 函數(shù)剝?nèi)?HTML、XML 以及 PHP 的標(biāo)簽。2010-10-10
PHP調(diào)用QQ互聯(lián)接口實(shí)現(xiàn)QQ登錄網(wǎng)站功能示例
這篇文章主要介紹了PHP調(diào)用QQ互聯(lián)接口實(shí)現(xiàn)QQ登錄網(wǎng)站功能,結(jié)合實(shí)例形式分析php調(diào)用QQ互聯(lián)接口實(shí)現(xiàn)QQ登錄網(wǎng)站的相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
php實(shí)現(xiàn)網(wǎng)站文件批量壓縮下載功能
這篇文章主要介紹了php實(shí)現(xiàn)網(wǎng)站文件批量壓縮下載功能,文章提供了一個(gè)將文件壓縮為zip格式的示例,感興趣的小伙伴們可以參考一下2015-10-10
PHP實(shí)現(xiàn)普通hash分布式算法簡(jiǎn)單示例
這篇文章主要介紹了PHP實(shí)現(xiàn)普通hash分布式算法,結(jié)合實(shí)例形式分析了普通hash分布式算法類的定義與簡(jiǎn)單使用技巧,需要的朋友可以參考下2018-08-08
使用NetBeans + Xdebug調(diào)試PHP程序的方法
前些天發(fā)現(xiàn)通過(guò)Notepad++的DBGP插件結(jié)合PHP的xdebug擴(kuò)展可以實(shí)現(xiàn)PHP文件調(diào)試,同時(shí),介紹說(shuō)包含了單步調(diào)試、監(jiān)視變量還有跨文件調(diào)試。2011-04-04
PHP工廠模式Factory Pattern的實(shí)現(xiàn)及特點(diǎn)
工廠模式,是一種實(shí)例化對(duì)象的方式,只要輸入需要實(shí)例化對(duì)象的名字,就可以通過(guò)工廠對(duì)象的相應(yīng)工廠函數(shù)來(lái)制造你需要的對(duì)象,工廠模式的最主要作用就是對(duì)象創(chuàng)建的封裝、簡(jiǎn)化創(chuàng)建對(duì)象操作2023-03-03
PHPWind與Discuz截取字符函數(shù)substrs與cutstr性能比較
PHP性能優(yōu)化系列第四期實(shí)戰(zhàn)篇,如何使用PEAR Benchmark類工具獲取函數(shù)執(zhí)行性能,這里以PHPWind與Discuz!兩個(gè)社區(qū)論壇的截取字符函數(shù)substrs與cutstr為例,分析兩個(gè)函數(shù)的執(zhí)行性能情況2011-12-12

