首頁  >  文章  >  後端開發  >  php中定義常數的兩種方法

php中定義常數的兩種方法

angryTom
angryTom原創
2019-08-22 13:36:4512779瀏覽

php中定義常數的兩種方法

「常數」的廣義概念是:『不變化的量』(例如:在電腦程式執行時,不會被程式修改的量;數學函數中的某一個量,例如每一個具體的圓的半徑、直徑數值;物理學中的靠近地面的重力加速度;真空中的光速數值;)下面為大家介紹一下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中定義常數的兩種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn