在類中除了有普通的成員(普通的屬性和普通的方法),還有靜態的成員(靜態屬性和靜態方法)
先看下面的**:
<?php
class book
}//第一次例項化物件
$b1 = new book();
$b1->showme();
//第二次例項化物件
$b2 = new book();
$b2->showme();
//第三次例項化物件
$b3 = new book();
$b3->showme();
輸出結果如下:
如果使用普通的成員變數,會是什麼結果呢?
<?php
class book
}//第一次例項化物件
$b1 = new book();
$b1->showme();
//第二次例項化物件
$b2 = new book();
$b2->showme();
//第三次例項化物件
$b3 = new book();
$b3->showme();
執行結果如下:
通過比對執行結果,我們會發現兩者有明顯的區別。我們來總結靜態變數的特點。
靜態變數 型別說明符是static。除了有靜態的屬性,還有靜態方法。見下面 例子:靜態變數屬於靜態儲存方式,其儲存空間為記憶體中的靜態資料區,該 區域中的資料在整個程式的執行期間一直占用這些儲存空間(在程式整個執行期間都不釋放),直到整個程式執行結束。
<?php
class person
}echo person::tellage(); //output 'the age is: 1'
echo person::tellage(); //output 'the age is: 2'
echo person::tellage(); //output 'the age is: 3'
echo person::tellage(); //output 'the age is: 4'
在類的外部訪問靜態成員時,必須使用類名和扣操作符 :: ,而不需要建立物件 第12課 物件導向與面向過程
1.物件導向與面向過程 面向過程設計程式是按照事件發生流程搭建乙個框架,框架裡包含了這件事所有可能的情況,這個框架就是我們的演算法和程式結構,就像建一棟樓先建立鋼筋混泥土骨架,然後填充牆壁,規劃每個房間的功能,裝修。物件導向程式設計是按照程式中不同物件可能會遇到的各種情況進行設計,最後把不同物件放在...
第26課 靜態成員函式
未完成的需求 統計在程式執行期間某個類的物件數目 保證程式的安全性 不能使用全域性變數 隨時可以獲取當前物件的數目 failure 假設程式中沒有test物件,你就無法獲取當前物件的數目。因為在上乙個程式中是使用物件去呼叫成員函式的,此時如果沒有物件,如何去呼叫呢?解決方案1 include cla...
《php物件導向》 第15課 命名空間
命名空間是在php5.3版本以加入的。命名空間乙個最明確的目的就是解決重名問題,php中不允許兩個函式或者類出現相同的名字,否則會產生乙個致命的錯誤。預設情況下,所有常量 類和函式名都放在全域性空間下,就和php支援命名空間之前一樣。命名空間通過關鍵字namespace 來宣告。如果乙個檔案中包含命...