理解PHP5中static和const關(guān)鍵字的區(qū)別
更新時間:2007年03月19日 00:00:00 作者:
PHP5中加入了很多面向?qū)ο蟮乃枷?PHP5的面向?qū)ο蟊容^接近Java的面向?qū)ο笏枷?。我們這里對PHP5中的static和const關(guān)鍵字作用進(jìn)行一下描述,希望對學(xué)習(xí)PHP5的朋友有幫助。
(1) static
static關(guān)鍵字在類中是,描述一個成員是靜態(tài)的,static能夠限制外部的訪問,因為static后的成員是屬于類的,是不屬于任何對象實例,其他類是無法訪問的,只對類的實例共享,能一定程序?qū)υ摮蓡T盡心保護(hù)。類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態(tài)方法也是一樣的,類似于全局函數(shù)。類的靜態(tài)方法能訪問類的靜態(tài)的屬性。另外說明的是,static的成員,必須使用self來訪問,使用this會出錯。
(關(guān)于this和self的異同,請參考: http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx )
(2)const
const是一個定義常量的關(guān)鍵字,類似于C中的#define,能夠定義一個常量,如果在程序中改變了它的值,那么會出現(xiàn)錯誤。
舉例說明上面的代碼:(注:以下代碼來自phpe.net)
<?php
class Counter
{
private static $count = 0;//定義一個靜態(tài)屬性
const VERSION = 2.0;//定義一個常量
//構(gòu)造函數(shù)
function __construct()
{
self::$count++;
}
//析構(gòu)函數(shù)
function __destruct()
{
self::$count--;
}
//定義一個靜態(tài)的方法
static function getCount()
{
return self::$count;
}
}
//創(chuàng)建一個實例
$c = new Counter();
//執(zhí)行打印
print( Counter::getCount(). "<br>n" ); //使用直接輸入類名來訪問靜態(tài)方法Counter::getCount
//打印類的版本
print( "Version useed: " .Counter::VERSION. "<br>n" );
?>
恩,基本到這里,心里知道的那點東西就講清楚了,不過我覺得自己對static還有點不理解,請高手指點!
(1) static
static關(guān)鍵字在類中是,描述一個成員是靜態(tài)的,static能夠限制外部的訪問,因為static后的成員是屬于類的,是不屬于任何對象實例,其他類是無法訪問的,只對類的實例共享,能一定程序?qū)υ摮蓡T盡心保護(hù)。類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態(tài)方法也是一樣的,類似于全局函數(shù)。類的靜態(tài)方法能訪問類的靜態(tài)的屬性。另外說明的是,static的成員,必須使用self來訪問,使用this會出錯。
(關(guān)于this和self的異同,請參考: http://blog.csdn.net/heiyeshuwu/archive/2004/11/03/165828.aspx )
(2)const
const是一個定義常量的關(guān)鍵字,類似于C中的#define,能夠定義一個常量,如果在程序中改變了它的值,那么會出現(xiàn)錯誤。
舉例說明上面的代碼:(注:以下代碼來自phpe.net)
復(fù)制代碼 代碼如下:
<?php
class Counter
{
private static $count = 0;//定義一個靜態(tài)屬性
const VERSION = 2.0;//定義一個常量
//構(gòu)造函數(shù)
function __construct()
{
self::$count++;
}
//析構(gòu)函數(shù)
function __destruct()
{
self::$count--;
}
//定義一個靜態(tài)的方法
static function getCount()
{
return self::$count;
}
}
//創(chuàng)建一個實例
$c = new Counter();
//執(zhí)行打印
print( Counter::getCount(). "<br>n" ); //使用直接輸入類名來訪問靜態(tài)方法Counter::getCount
//打印類的版本
print( "Version useed: " .Counter::VERSION. "<br>n" );
?>
恩,基本到這里,心里知道的那點東西就講清楚了,不過我覺得自己對static還有點不理解,請高手指點!
您可能感興趣的文章:
- 利用phpExcel實現(xiàn)Excel數(shù)據(jù)的導(dǎo)入導(dǎo)出(全步驟詳細(xì)解析)
- 解析php中const與define的應(yīng)用區(qū)別
- PHP常量define和const的區(qū)別詳解
- php 靜態(tài)變量與自定義常量的使用方法
- php預(yù)定義常量
- 深入php define()函數(shù)以及defined()函數(shù)的用法詳解
- 探討php define()函數(shù)及defined()函數(shù)使用詳解
- php中static和const關(guān)鍵字用法分析
- PHP中define() 與 const定義常量的區(qū)別詳解
相關(guān)文章
PHP獲取數(shù)組中重復(fù)最多的元素的實現(xiàn)方法
這篇文章主要介紹了PHP獲取數(shù)組中重復(fù)最多的元素的實現(xiàn)方法,通過一個自定義函數(shù)遍歷數(shù)組實現(xiàn)這一功能,是非常使用的技巧,需要的朋友可以參考下2014-11-11PHP錯誤Warning:mysql_query()解決方法
這篇文章主要介紹了PHP錯誤Warning:mysql_query()的解決方法,希望可以真正解決大家的問題,需要的朋友可以參考下2015-10-10php集成安裝包wampserver修改密碼后phpmyadmin無法登陸的解決方法
這篇文章主要介紹了php集成安裝包wampserver修改密碼后phpmyadmin無法登陸的解決方法,綜合分析了wampserver安裝過程中經(jīng)常遇到的問題,并詳細(xì)分析了phpmyadmin在修改mysql密碼后無法訪問的解決方法,需要的朋友可以參考下2016-11-11php中隨機(jī)函數(shù)mt_rand()與rand()性能對比分析
這篇文章主要介紹了php中隨機(jī)函數(shù)mt_rand()與rand()性能對比分析,較為詳細(xì)的分析了兩個函數(shù)的具體用法,并以實例形式分析了在不同平臺下的運行效率問題,需要的朋友可以參考下2014-12-12php 從數(shù)據(jù)庫提取二進(jìn)制圖片的處理代碼
形式上類似UCH 只是存儲方式不一樣 本人比較愚鈍 這個問題困惑了我半天 希望對有同樣問題的phper有所幫助 高手們別見笑!2009-09-09