這篇文章主要介紹了php中定義常量的方法有哪些,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
“常量”的廣義概念是:‘不變化的量’(例如:在計算機程序運行時,不會被程序修改的量;數學函數中的某一個量,例如每一個具體的圓的半徑、直徑數值;物理學中的靠近地面的重力加速度;真空中的光速數值;)下面為大家介紹一下PHP中兩種定義常量的方法。
我們這里用pi來舉例。
第一種方式:宏定義,是將Pi定義成一種符號,此時Pi只是3.1415926的別名,在編譯期間用3.1415926去取代Pi的值。
1.define是宏定義,程序在預處理階段將用define定義的內容進行了替換。因此程序運行時,常量表中并沒有用define定義的常量,系統不為它分配內存。const定義的常量,在程序運行時在常量表中,系統為它分配內存。
2.define定義的常量,預處理時只是直接進行了替換。所以編譯時不能進行數據類型檢驗。const定義的常量,在編譯時進行嚴格的類型檢驗,可以避免出錯。
3.define定義表達式時要注意“邊緣效應”,例如如下定義: #define N 2+3 //我們預想的N值是5,我們這樣使用N,int a = N/2; //我們預想的a的值是2.5,可實際上a的值是3.5原因在于在預處理階段,編譯器將 a = N/2處理成了 a = 2+3/2;這就是宏定義的字符串替換的“邊緣效應”因此要如下定義:#define N (2+3)。
第二種方式:是將PI定義成變量,但告訴編譯器它的值是固定不變的,如果在程序中試圖去修改它的值,在編譯時會報錯。
const定義的常量叫做常變量原因有二:const定義常量像變量一樣檢查類型;const可以在任何地方定義常量,編譯器對它的處理過程與變量相似,只是分配內存的地方不同。
總結起來說,推薦用const ,而不是#define 預處理指令(但是目前看到的是使用#define的較多,難道是方便?有待考量)
1. const 可以定義數據類型,提高了類型安全性。例如,我們上面可以指定PI 這個常量是double 類型
2. const 既然是變量(這里有點別扭,它其實是不變的,但名稱叫做常值變量), 那么就有地址,適用面更加廣
3. 語法上也更好理解一些
符號常量 #define Pi 3.1415926f; 常值變量 const float pi 3.1415926f;
感謝你能夠認真閱讀完這篇文章,希望小編分享php中定義常量的方法有哪些內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。