PHP5中加入了許多物件導向的想法,PHP5的物件導向比較接近Java的物件導向思想。我們在這裡對PHP5中的static和const關鍵字作用進行一下描述,希望對學習PHP5的朋友有幫助。
(1) static
static關鍵字在類別中是,描述一個成員是靜態的,static能夠限制外部的訪問,因為static後面的成員是屬於類別的,是不屬於任何物件實例,其他類別是無法存取的,只對類別的實例共享,能一定程式對該成員盡心保護。類別的靜態變量,非常類似全域變量,能夠被所有類別的實例共享,類別的靜態方法也是一樣的,類似全域函數。類別的靜態方法能存取類別的靜態的屬性。另外說明的是,static的成員,必須使用self來訪問,使用this會出錯。
(關於this和self的異同,請參考: http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx )
(2)const
const是一個定義常數的關鍵字,類似於C中的#define,能夠定義一個常數,如果在程式中改變了它的值,那麼就會出現錯誤。
舉例說明上面的程式碼:(註:以下程式碼來自phpe.net)
<?php
class Counter
{
private static $count = 0;//定義一個靜態屬性
const VERSION = 2.0;//定義一個常數
//建構函數
function __construct()
{
self::$count++;
}
//析構函數
function __destruct()
{
self::$count--;
}
//定義一個靜態的方法
static function getCount()
{
return self::$count;
}
}
//建立一個實例
$c = new Counter();
//執行列印
print( Counter::getCount(). "<br>n" ); //使用直接輸入類別名稱存取靜態方法Counter::getCount
//列印類別的版本
print( "Version useed: " .Counter::VERSION. "<br>n" );
?>
恩,基本到這裡,心裡知道的那點東西就講清楚了,不過我覺得自己對static還有點不理解,請高手指點!
我的信箱: [email protected]
WriteTime 2004-11-3 21:00
http://dev.csdn.net/author/heiyeshuwu/23f0d08c11bc4509b41844855d5c7063.html