php中const與define的區別

來源:互聯網
上載者:User

標籤:結構   define   支援   不能   pre   簡單   算術運算子   接收   函數定義   

1 版本差異:

const 要求php的版本》5.3.0

define 可以相容php4,php5 等版本

 

2 定義的位置區別:

const關鍵字定義的常量是在編譯時間定義的,因此const關鍵字定義常量必須處於最頂端的作用地區

(意味著不能在函數內、迴圈內以及if語句之內用const來定義常量)

函數define()  定義的常量是在執行define()函數時定義的,因此可以在函數內、迴圈內、if語句內等函數能夠被調用的任何地方使用define()函數定義常量

 

3 對值的運算式支援的差異:

const定義常量是在編譯時間定義的,因此const關鍵字定義的常量值的運算式中不支援算術運算子、位元運算符、比較子等多種運算子

這些運算子在define()函數定義常量時都是可以直接使用的

define(‘DEFINE_VAR1‘, 1 << 1);//const CONST_VAR1 = (1 << 1); //const不支援位元運算符,PHP會報語法錯誤

 

4 對字元大小寫敏感的支援差異:

const關鍵字定義常量 大小敏感

define()可以接收第3個參數,如果該參數為true,則表示常量名的大小寫不敏感

define(‘SITE_NAME‘, ‘CodePlayer‘, true);echo SITE_NAME; //輸出:CodePlayerecho site_name; //輸出:CodePlayerecho SiTe_NamE; //輸出:CodePlayer

 

註:使用const使得代碼簡單易讀,const本身就是一個語言結構,而define是一個函數。另外const在編譯時間要比define快很多

 

php中const與define的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.