const和define 的區別

2022-08-21 14:18:09 字數 871 閱讀 5355

php定義常量的兩種方法define()和conset 

這兩種方法都可以定義常量,使用方法如下

但是他們有什麼區別呢

1.使用位置不同,const可以在class內使用,class外使用,而define只能在class外使用

2.作用範圍不同,const會受命名空間影響,define不受命名空間影響,如果const在class內定義,作用範圍只在class內

而不同命名空間中定義同乙個常量,會直接報錯

注意:雖然const常量在不同的命名空間可以同時存在,但是在同乙個命名空間中同名的const變數不會覆蓋,而是會報錯

綜上所述,一般使用場景中,define一般用來定義全域性常量,const一般在class內定義常量

const和define的區別

1 編譯器處理方式不同 define巨集是在預處理階段展開。const常量是編譯執行階段使用。2 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是展開。const常量有具體的型別,在編譯階段會執行型別檢查。3 儲存方式不同 define巨集僅僅是展開,有多少地方使用,就展開多少...

const和 define的區別

1 const定義的常量是有型別的,define定義的常量是沒有型別的 這就意味著會對前者做乙個型別的檢查,對 define則是做乙個簡單的替換 2 const定義的常量在編譯的時候分配記憶體,而 define定義的常量在預編譯的時候進行替換,不分配記憶體 3 作用域不同,const定義的常變數的作...

const和define的區別

1 編譯器處理方式不同 define巨集是在預處理階段展開。const常量是編譯執行階段使用。2 型別和安全檢查不同 define巨集沒有型別,不做任何型別檢查,僅僅是展開。const常量有具體的型別,在編譯階段會執行型別檢查。3 儲存方式不同 define巨集僅僅是展開,有多少地方使用,就展開多少...