一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - 解析php中static,const與define的使用區(qū)別

解析php中static,const與define的使用區(qū)別

2020-04-17 12:22PHP教程網(wǎng) PHP教程

本篇文章是對php中static,const與define的使用區(qū)別進行了詳細的分析介紹,需要的朋友參考下

define部分:
宏不僅可以用來代替常數(shù)值,還可以用來代替表達式,甚至是代碼段。(宏的功能很強大,但也容易出錯,所以其利弊大小頗有爭議。)
宏的語法為:
#define 宏名稱 宏值
作為一種建議和一種廣大程序員共同的習(xí)慣,宏名稱經(jīng)常使用全部大寫的字母。
利用宏的優(yōu)點:
1)讓代碼更簡潔明了

當(dāng)然,這有賴于你為宏取一個適當(dāng)?shù)拿帧R话銇碚f,宏的名字更要注重有明確直觀的意義,有時寧可讓它長點。
2)方便代碼維護
對宏的處理,在編譯過程中稱為“預(yù)處理”。也就是說在正式編譯前,編譯器必須先將代碼出現(xiàn)的宏,用其相應(yīng)的宏值替換,這個過程有點你我在文字處理軟件中的查找替換。所以在代碼中使用宏表達常數(shù),歸根結(jié)底還是使用了立即數(shù),并沒有明確指定這個量的類型。

const部分
常量定義的格式為:
const 數(shù)據(jù)類型 常量名 = 常量值;
而const定義的常量具有數(shù)據(jù)類型,定義數(shù)據(jù)類型的常量便于編譯器進行數(shù)據(jù)檢查,使程序可能出現(xiàn)錯誤進行排查。常量必須一開始就指定一個值,然后,在以后的代碼中,我們不允許改變此常量的值。

兩者之間的區(qū)別:
內(nèi)存空間的分配上。define進行宏定義的時候,不會分配內(nèi)存空間,編譯時會在main函數(shù)里進行替換,只是單純的替換,不會進行任何檢查,比如類型,語句結(jié)構(gòu)等,即宏定義常量只是純粹的置放關(guān)系,如#define null 0;編譯器在遇到null時總是用0代替null它沒有數(shù)據(jù)類型(還有疑問請找C語言書籍看預(yù)處理部分或者看MSDN.而const定義的常量具有數(shù)據(jù)類型,定義數(shù)據(jù)類型的常量便于編譯器進行數(shù)據(jù)檢查,使程序可能出現(xiàn)錯誤進行排查,所以const與define之間的區(qū)別在于const定義常量排除了程序之間的不安全性. define定義全局常量,在任何地方都可以訪問

const用于類成員變量定義,只能用類名訪問不能更改要是初學(xué)這樣顯理解著就行別太鉆牛角尖就行 PHP5中加入了很多面向?qū)ο蟮乃枷?PHP5的面向?qū)ο蟊容^接近Java的面向?qū)ο笏枷搿N覀冞@里對PHP5中的static和const關(guān)鍵字作用進行一下描述,希望對學(xué)習(xí)PHP5的朋友有幫助。

(1) staticstatic關(guān)鍵字在類中是,描述一個成員是靜態(tài)的,static能夠限制外部的訪問,因為static后的成員是屬于類的,是不屬于任何對象實例,其他類是無法訪問的,只對類的實例共享,能一定程序?qū)υ摮蓡T盡心保護。類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態(tài)方法也是一樣的,類似于全局函數(shù)。類的靜態(tài)方法能訪問類的靜態(tài)的屬性。另外說明的是,static的成員,必須使用self來訪問,使用this會出錯。

(2)constconst是一個定義常量的關(guān)鍵字,類似于C中的#define,能夠定義一個常量,如果在程序中改變了它的值,那么會出現(xiàn)錯誤。舉例說明上面的代碼:

復(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" ); 
?>


延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费特黄一级欧美大片在线看 | 亚洲男人天 | 免费一级毛片在线播放放视频 | 5151hh四虎国产精品 | chinese野外gay军人 | 国产专区日韩精品欧美色 | 羞羞答答免费人成黄页在线观看国产 | 欧美军人男同69gay | 丰满肥臀风间由美357在线 | 美女扒开胸罩露出奶 | 激情小说色图 | 国产微拍精品一区 | vod国产成人精品视频 | 91传媒制片厂果冻有限公司 | 草草草视频在线观看 | 爽好舒服宝贝添奶吻戏 | 我的绝色岳每雯雯 | 免费看视频的 | 777奇米影视一区二区三区 | 精品无码国产AV一区二区三区 | 日本中文字幕一区二区高清在线 | 亚洲国产区中文在线观看 | 国产精品久久久久久久久免费 | 久久久久久免费高清电影 | 亚洲欧美日韩综合在线播放 | 国内精品视频一区二区三区八戒 | 久久综合给会久久狠狠狠 | 大陆国产vs国产对白 | 免费岛国片 | 国产99久久精品 | 日韩 国产 欧美 精品 在线 | 亚洲精品国产综合久久一线 | 国产精品不卡 | 欧美日本道免费一区二区三区 | 日韩手机在线视频 | 国产精品福利在线观看免费不卡 | 日本暖暖视频在线观看 | 32d乳白色的奶罩未删除 | 国模娜娜一区二区三区 | 甜宠巨肉h文1v1校园 | 久9青青cao精品视频在线 |