php在类定义一个我静态变量,php中静态类与静态变量用法的区别分析_PHP教程
php中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析
static是定義一個靜態(tài)對象或靜態(tài)變量,關(guān)于static 定義的變量或類方法有什么特性我們看完本文章的相關(guān)實例后就見分曉了.
1. 創(chuàng)建對象$object = new Class(),然后使用”->”調(diào)用:$object->attribute/function,前提是該變量/方法可訪問.
2. 直接調(diào)用類方法/變量:class::attribute/function,無論是靜態(tài)/非靜態(tài)都可以,但是有前提條件.
A. 如果是變量,需要該變量可訪問.
B. 如果是方法,除了該方法可訪問外,還需要滿足.
① 如果是靜態(tài)方法,沒有特殊條件.
② 如果是非靜態(tài)方法,需要改方法中沒有使用$this,即沒有調(diào)用非靜態(tài)的變量/方法,當(dāng)然,調(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)方法/變量存在還有什么意義呢?
靜態(tài)static:聲明類成員或方法為 static,就可以不實例化類而直接訪問,不能通過一個對象來訪問其中的靜態(tài)成員(靜態(tài)方法除外),靜態(tài)成員屬于類,不屬于任何對象實例,但類的對象實例都能共享.
例子,代碼如下:
代碼如下:
運行該例子,輸出:
中國
我是中國人
我是中國人
中國
我是中國人
小結(jié):在類內(nèi)部訪問靜態(tài)成員屬性或者方法,使用 self::(注意不是 $slef),代碼如下:
代碼如下:
slef:: $country
slef:: myCountry()
在子類訪問父類靜態(tài)成員屬性或方法,使用 parent::(注意不是 $parent),代碼如下:
代碼如下:
parent:: $country
parent:: myCountry()
外部訪問靜態(tài)成員屬性和方法為 類名/子類名::,代碼如下:
代碼如下:
Person::$country
Person::myCountry()
Student::$country
但靜態(tài)方法也可以通過普通對象的方式訪問.
例子,聲明靜態(tài)變量,代碼如下:
代碼如下:
例子,使用靜態(tài)變量的例子,代碼如下:
代碼如下:
現(xiàn)在,每次調(diào)用 Test() 函數(shù)都會輸出 $w3sky 的值并加一.
靜態(tài)變量也提供了一種處理遞歸函數(shù)的方法,遞歸函數(shù)是一種調(diào)用自己的函數(shù),寫遞歸函數(shù)時要小心,因為可能會無窮遞歸下去,必須確保有充分的方法來中止遞歸,一下這個簡單的函數(shù)遞歸計數(shù)到 10,使用靜態(tài)變量 $count 來判斷何時停止.
例子,靜態(tài)變量與遞歸函數(shù),代碼如下:
代碼如下:
注:靜態(tài)變量可以按照上面的例子聲明,如果在聲明中用表達式的結(jié)果對其賦值會導(dǎo)致解析錯誤.
http://www.bkjia.com/PHPjc/944486.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/944486.htmlTechArticlephp中靜態(tài)類與靜態(tài)變量用法的區(qū)別分析 static是定義一個靜態(tài)對象或靜態(tài)變量,關(guān)于static 定義的變量或類方法有什么特性我們看完本文章的相...
相關(guān)文章
相關(guān)視頻
網(wǎng)友評論
文明上網(wǎng)理性發(fā)言,請遵守 新聞評論服務(wù)協(xié)議我要評論
立即提交
專題推薦獨孤九賤-php全棧開發(fā)教程
全棧 100W+
主講:Peter-Zhu 輕松幽默、簡短易學(xué),非常適合PHP學(xué)習(xí)入門
玉女心經(jīng)-web前端開發(fā)教程
入門 50W+
主講:滅絕師太 由淺入深、明快簡潔,非常適合前端學(xué)習(xí)入門
天龍八部-實戰(zhàn)開發(fā)教程
實戰(zhàn) 80W+
主講:西門大官人 思路清晰、嚴(yán)謹規(guī)范,適合有一定web編程基礎(chǔ)學(xué)習(xí)
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
Copyright 2014-2020 https://www.php.cn/ All Rights Reserved | 蘇ICP備2020058653號-1
總結(jié)
以上是生活随笔為你收集整理的php在类定义一个我静态变量,php中静态类与静态变量用法的区别分析_PHP教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法系列之十一】k个一组翻转链表
- 下一篇: php长轮询阻塞,ajax长轮询时php