在php中(php 4及以後),我們可以使用函式define()來定義常量,例如:
<?php
define('pi',3.14159); //定義乙個名為pi的常量
echo pi; //輸出:3.14159
不過,在php 5.3.0之後,除了使用函式define()之外,我們還可以使用php關鍵字const來定義常量,例如:
<?php
//以下**需在php 5.3.0及之後的版本中執行
const pi =3.14159;//使用const關鍵字定義乙個名為pi的常量
echo pi; //輸出:3.14159
區別:
由於函式define()定義的常量是在執行define()函式時定義的,因此可以在函式內、迴圈內、if語
句內等函式能夠被呼叫的任何地方使用define()函式定義常量。與define()不同的是,由於const
關鍵字定義的常量是在編譯時定義的,因此const關鍵字定義常量必須處於最頂端的作用區域。這
也就意味著不能在函式內、迴圈內以及if語句之內用const來定義常量。
<?php
//使用const關鍵字定義常量必須處於最頂端的作用區域
//也就是可以在編譯時直接解析定義的地方
const demo ='demo';
classperson$user =newuser();define('define_var7', $user instanceofuser);
//const const_var7 = $user instanceof user ; //const不支援型別運算子,php會報語法錯誤
函式define()可以接收第3個引數,如果該引數為true,則表示常量名的大小寫不敏感。而使用const關鍵字定義常量卻沒有提供類似的功能。
<?php
//設定編碼為utf-8,以避免中文亂碼
header('content-type:text/html;charset=utf-8');
//define()的第3個引數為true時,表示大小寫不敏感
define('site_name','codeplayer',true);
echo site_name;//輸出:codeplayer
echo site_name;//輸出:codeplayer
echo site_name;//輸出:codeplayer
const domain_name ='365mini.com';
echo domain_name; //輸出:365mini.com
echo domain_name; //php提示常量未定義
echo domain_name; //php提示常量未定義
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巨集僅僅是展開,有多少地方使用,就展開多少...