PHP類的靜態(tài)(static)方法和靜態(tài)(static)變量使用介紹
更新時間:2012年02月19日 20:51:13 作者:
PHP類的靜態(tài)(static)方法和靜態(tài)(static)變量使用介紹,學(xué)習(xí)php的朋友可以看下
在php中,訪問類的方法/變量有兩種方法:
1. 創(chuàng)建對象$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)的變量/方法,當然,調(diào)用靜態(tài)的變量/方法沒有問題。
然后我們再看一下使用$object->… 和使用class::… 都有什么區(qū)別:
1. 使用$object->… ,需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象;
2. 使用class::… 調(diào)用靜態(tài)方法/變量,不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象;
3. 使用class::… 調(diào)用非靜態(tài)方法/變量,也不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象。
然后奇怪的地方就出來了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?
差異還是顯然存在的,如下:
1. 靜態(tài)變量
靜態(tài)成員只保留一個變量值,而這個變量值對所有的實例都是有效,也就是說,所有的實例共享這個成員。
2. 靜態(tài)方法
靜態(tài)方法可以直接使用class::… 來調(diào)用,而非靜態(tài)方法需要滿足一定限制條件才能使用class::.. 的方法調(diào)用,如之前所述
1. 創(chuàng)建對象$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)的變量/方法,當然,調(diào)用靜態(tài)的變量/方法沒有問題。
然后我們再看一下使用$object->… 和使用class::… 都有什么區(qū)別:
1. 使用$object->… ,需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象;
2. 使用class::… 調(diào)用靜態(tài)方法/變量,不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象;
3. 使用class::… 調(diào)用非靜態(tài)方法/變量,也不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象。
然后奇怪的地方就出來了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?
差異還是顯然存在的,如下:
1. 靜態(tài)變量
靜態(tài)成員只保留一個變量值,而這個變量值對所有的實例都是有效,也就是說,所有的實例共享這個成員。
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)方法實例分析
- PHP中Static(靜態(tài))關(guān)鍵字功能與用法實例分析
相關(guān)文章
smarty中先strip_tags過濾html標簽后truncate截取文章運用
strip_tags() 函數(shù)剝?nèi)?HTML、XML 以及 PHP 的標簽。2010-10-10
PHP調(diào)用QQ互聯(lián)接口實現(xiàn)QQ登錄網(wǎng)站功能示例
這篇文章主要介紹了PHP調(diào)用QQ互聯(lián)接口實現(xiàn)QQ登錄網(wǎng)站功能,結(jié)合實例形式分析php調(diào)用QQ互聯(lián)接口實現(xiàn)QQ登錄網(wǎng)站的相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
使用NetBeans + Xdebug調(diào)試PHP程序的方法
前些天發(fā)現(xiàn)通過Notepad++的DBGP插件結(jié)合PHP的xdebug擴展可以實現(xiàn)PHP文件調(diào)試,同時,介紹說包含了單步調(diào)試、監(jiān)視變量還有跨文件調(diào)試。2011-04-04
PHP工廠模式Factory Pattern的實現(xiàn)及特點
工廠模式,是一種實例化對象的方式,只要輸入需要實例化對象的名字,就可以通過工廠對象的相應(yīng)工廠函數(shù)來制造你需要的對象,工廠模式的最主要作用就是對象創(chuàng)建的封裝、簡化創(chuàng)建對象操作2023-03-03
PHPWind與Discuz截取字符函數(shù)substrs與cutstr性能比較
PHP性能優(yōu)化系列第四期實戰(zhàn)篇,如何使用PEAR Benchmark類工具獲取函數(shù)執(zhí)行性能,這里以PHPWind與Discuz!兩個社區(qū)論壇的截取字符函數(shù)substrs與cutstr為例,分析兩個函數(shù)的執(zhí)行性能情況2011-12-12

