新聞中心
本教程操作環(huán)境:windows7系統(tǒng)、php7.1版、DELL G3電腦

我們提供的服務(wù)有:做網(wǎng)站、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、七里河ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的七里河網(wǎng)站制作公司
php中定義常量的方法
-
define()函數(shù)
-
const關(guān)鍵字
與變量相比,常量具有以下幾個特點:
-
常量前面沒有美元符號($);
-
常量只能用 define() 和 const 定義;
-
常量的作用域是全局的;
-
常量一旦被定義就不能被重新定義或者取消定義。
define()函數(shù)定義常量
合法的常量名只能以字母和下劃線開始,后面可以跟著任意長度的字母、數(shù)字或下劃線。在 PHP 中可以通過 define() 函數(shù)定義一個常量,define() 函數(shù)的語法如下:
define($name, $value , $case_insensitive)
-
$name 必選參數(shù),常量名稱(需要使用雙引號或單引號包裹)
-
$value 必選參數(shù),常量的值
-
$case_insensitive 可選參數(shù),指定是否大小寫敏感,默認(rèn)是大小寫敏感的,設(shè)定為 true 則表示大小寫不敏感
'; ?>
const關(guān)鍵字定義常量
語法:
const 常量名 = 常量值;
示例:
'; ?>
define() 和 const 的區(qū)別:
const是在編譯時定義常量,而define()方法是在運(yùn)行時定義常量。
const不能用在if語句中, defne()能用在if語句中。
if(...) {
const FOO = 'BAR';//錯誤
}
if(...) {
define('FOO', 'BAR');//正確
}
define()的一個常用場景是先判斷常量是否已經(jīng)定義再定義常量:
if(defined('FOO)) {
define('FOO', 'BAR')
}
const 定義常量時,值只能是靜態(tài)標(biāo)量(數(shù)字, 字符串, true,false, null), 而define()方法可以把任意表達(dá)式的值用作常量的值。從PHP5.6開始const也允許把表達(dá)式用作常量的值了。
const BIT_5 = 1 << 5; //PHP5.6后支持,之前的PHP版本不支持
define('BIT_5', 1 << 5);// 所有PHP版本都支持const 只允許簡單的常量名,而define()可以把任何表達(dá)式的值用作常量名
for ($i = 0; $i < 32; $i++) {
define('BIT_' . $i, 1 << $i);
}
const 定義的常量常量名是大小寫敏感的,而傳遞true給define()方法的第三個參數(shù)時可以定義大小寫不敏感的常量。
define('FOO', 'BAR', true);
echo FOO; //BAR
echo foo; //BAR
上面列舉的都是const相較define()而言的一些缺點或者不靈活的地方,下面我們看一下為什么我個人推薦用const而不是define()來定義常量(除非要在上述列舉的場景中定義常量)。
const 具有更好的可讀性,const是語言結(jié)構(gòu)而不是函數(shù),而且與在類中定義類常量的形式保持一致。
const在當(dāng)前的命名空間中定義常量, 而define()要實現(xiàn)類似效果必須在定義時傳遞完整的命名空間名稱:
namespace A\B\C;
//To define the constant A\B\C\FOO:
const FOO = 'BAR';
define('A\B\C\FOO', 'BAR'); 分享文章:php中定義常量的方法是什么
路徑分享:http://m.fisionsoft.com.cn/article/dpichds.html


咨詢
建站咨詢
