|
(1) static
static關(guān)鍵字在類(lèi)中是,描述一個(gè)成員是靜態(tài)的,static能夠限制外部的訪(fǎng)問(wèn),因?yàn)閟tatic后的成員是屬于類(lèi)的,是不屬于任何對(duì)象實(shí)例,其他類(lèi)是無(wú)法訪(fǎng)問(wèn)的,只對(duì)類(lèi)的實(shí)例共享,能一定程序?qū)υ摮蓡T盡心保護(hù)。類(lèi)的靜態(tài)變量,非常類(lèi)似全局變量,能夠被所有類(lèi)的實(shí)例共享,類(lèi)的靜態(tài)方法也是一樣的,類(lèi)似于全局函數(shù)。類(lèi)的靜態(tài)方法能訪(fǎng)問(wèn)類(lèi)的靜態(tài)的屬性。另外說(shuō)明的是,static的成員,必須使用self來(lái)訪(fǎng)問(wèn),使用this會(huì)出錯(cuò)。
(關(guān)于this和self的異同,請(qǐng)參考: http://blog.csdn.NET/heiyeshuwu/archive/2004/11/03/165828.ASPx )
(2)const
const是一個(gè)定義常量的關(guān)鍵字,類(lèi)似于C中的#define,能夠定義一個(gè)常量,如果在程序中改變了它的值,那么會(huì)出現(xiàn)錯(cuò)誤。
舉例說(shuō)明上面的代碼:(注:以下代碼來(lái)自phpe.NET)
復(fù)制代碼 代碼如下:
<?php
class Counter
{
private static $count = 0;//定義一個(gè)靜態(tài)屬性
const VERSION = 2.0;//定義一個(gè)常量
//構(gòu)造函數(shù)
function __construct()
{
self::$count++;
}
//析構(gòu)函數(shù)
function __destruct()
{
self::$count--;
}
//定義一個(gè)靜態(tài)的方法
static function getCount()
{
return self::$count;
}
}
//創(chuàng)建一個(gè)實(shí)例
$c = new Counter();
//執(zhí)行打印
print( Counter::getCount(). "<br>n" ); //使用直接輸入類(lèi)名來(lái)訪(fǎng)問(wèn)靜態(tài)方法Counter::getCount
//打印類(lèi)的版本
print( "Version useed: " .Counter::VERSION. "<br>n" );
?>
恩,基本到這里,心里知道的那點(diǎn)東西就講清楚了,不過(guò)我覺(jué)得自己對(duì)static還有點(diǎn)不理解,請(qǐng)高手指點(diǎn)!
php技術(shù):理解PHP5中static和const關(guān)鍵字的區(qū)別,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。