《PHP實(shí)戰(zhàn):php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析》要點(diǎn):
本文介紹了PHP實(shí)戰(zhàn):php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析,希望對您有用。如果有疑問,可以聯(lián)系我們。
本文實(shí)例分析了php中靜態(tài)類與靜態(tài)變量用法的區(qū)別.分享給大家供大家參考.具體分析如下:PHP實(shí)例
static是定義一個靜態(tài)對象或靜態(tài)變量,關(guān)于static 定義的變量或類方法有什么特性我們看完本文章的相關(guān)實(shí)例后就見分曉了.PHP實(shí)例
1. 創(chuàng)建對象$object = new Class(),然后使用”->”調(diào)用:$object->attribute/function,前提是該變量/方法可訪問.PHP實(shí)例
2. 直接調(diào)用類方法/變量:class::attribute/function,無論是靜態(tài)/非靜態(tài)都可以,但是有前提條件.PHP實(shí)例
A. 如果是變量,需要該變量可訪問.PHP實(shí)例
B. 如果是方法,除了該方法可訪問外,還需要滿足.PHP實(shí)例
① 如果是靜態(tài)方法,沒有特殊條件.PHP實(shí)例
② 如果是非靜態(tài)方法,需要改方法中沒有使用$this,即沒有調(diào)用非靜態(tài)的變量/方法,當(dāng)然,調(diào)用靜態(tài)的變量/方法沒有問題.PHP實(shí)例
然后我們再看一下使用$object->… 和使用class::… 都有什么區(qū)別:PHP實(shí)例
1. 使用$object->… ,需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象.PHP實(shí)例
2. 使用class::… 調(diào)用靜態(tài)方法/變量,不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象.PHP實(shí)例
3. 使用class::… 調(diào)用非靜態(tài)方法/變量,也不需要執(zhí)行構(gòu)造函數(shù)創(chuàng)建對象.PHP實(shí)例
然后奇怪的地方就出來了,既然2和3都一樣,那靜態(tài)方法/變量存在還有什么意義呢?PHP實(shí)例
靜態(tài)static:聲明類成員或方法為 static,就可以不實(shí)例化類而直接訪問,不能通過一個對象來訪問其中的靜態(tài)成員(靜態(tài)方法除外),靜態(tài)成員屬于類,不屬于任何對象實(shí)例,但類的對象實(shí)例都能共享.PHP實(shí)例
例子,代碼如下:
PHP實(shí)例
小結(jié):在類內(nèi)部訪問靜態(tài)成員屬性或者方法,使用 self::(注意不是 $slef),代碼如下:
PHP實(shí)例
slef:: myCountry()PHP實(shí)例
在子類訪問父類靜態(tài)成員屬性或方法,使用 parent::(注意不是 $parent),代碼如下:
PHP實(shí)例
parent:: myCountry()PHP實(shí)例
外部訪問靜態(tài)成員屬性和方法為 類名/子類名::,代碼如下:
PHP實(shí)例
Person::myCountry()PHP實(shí)例
Student::$countryPHP實(shí)例
但靜態(tài)方法也可以通過普通對象的方式訪問.
例子,聲明靜態(tài)變量,代碼如下:
PHP實(shí)例
靜態(tài)變量也提供了一種處理遞歸函數(shù)的方法,遞歸函數(shù)是一種調(diào)用自己的函數(shù),寫遞歸函數(shù)時要小心,因?yàn)榭赡軙o窮遞歸下去,必須確保有充分的方法來中止遞歸,一下這個簡單的函數(shù)遞歸計(jì)數(shù)到 10,使用靜態(tài)變量 $count 來判斷何時停止.PHP實(shí)例
例子,靜態(tài)變量與遞歸函數(shù),代碼如下:
PHP實(shí)例
希望本文所述對大家的php程序設(shè)計(jì)有所幫助.PHP實(shí)例
《PHP實(shí)戰(zhàn):php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析》是否對您有啟發(fā),歡迎查看更多與《PHP實(shí)戰(zhàn):php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/12614.html