php中定義常數的方法:1、使用define()函數定義,語法「define(常數名, 常數值,是否大小寫敏感)」;2、使用const關鍵字定義,語法「const常量名= 常量值;」。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
php中定義常數的方法
define()函數
const關鍵字
與變數相比,常數有以下幾個特點:
常數前面沒有美元符號($);
常數只能用define() 和const 定義;
常數的作用域是全域的;
常數一旦被定義就不能被重新定義或取消定義。
define()函數定義常數
#合法的常數名稱只能以字母和底線開始,後面可以跟著任意長度的字母、數字或底線。在PHP 中可以透過define() 函數定義常數,define() 函數的語法如下:
define($name, $value , $case_insensitive)
$name 必選參數,常數名稱(需使用雙引號或單引號包裹)
$value 必選參數,常數的值
$case_insensitive 可選參數,指定是否大小寫敏感,預設是大小寫敏感的,設定為true 則表示大小寫不敏感
<?php header("Content-type:text/html;charset=utf-8"); define('WebSite', 'php中文网'); echo WebSite.'<br>'; ?>
##const關鍵字定義常數
語法:const 常量名 = 常量值;範例:
<?php const FOO = 'BAR'; echo FOO.'<br>'; ?>
define() 和const 的差異:
#const是在編譯時定義常數,而define()方法是在執行時定義常數。 const不能用在if語句中, defne()能用在if語句中。if(...) { const FOO = 'BAR';//错误 } if(...) { define('FOO', 'BAR');//正确 }define()的一個常用場景是先判斷常數是否已經定義再定義常數:
if(defined('FOO)) { define('FOO', 'BAR') }const 定義常數時,值只能是靜態標量(數字, 字串, true ,false, null), 而define()方法可以把任意表達式的值當作常數的值。從PHP5.6開始const也允許把表達式當作常數的值了。
const BIT_5 = 1 << 5; //PHP5.6后支持,之前的PHP版本不支持 define('BIT_5', 1 << 5);// 所有PHP版本都支持const 只允许简单的常量名,而define()可以把任何表达式的值用作常量名
for ($i = 0; $i < 32; $i++) { define('BIT_' . $i, 1 << $i); }const 定義的常數常數名稱是大小寫敏感的,而傳遞true給define()方法的第三個參數時可以定義大小寫不敏感的常數。
define('FOO', 'BAR', true); echo FOO; //BAR echo foo; //BAR上面列舉的都是const相較define()而言的一些缺點或不靈活的地方,下面我們看一下為什麼我個人推薦用const而不是define()來定義常數(除非要在上述列舉的場景中定義常數)。 const 具有更好的可讀性,const是語言結構而不是函數,並且與在類別中定義類別常數的形式保持一致。 const在目前的命名空間中定義常數,而define()要實現類似效果必須在定義時傳遞完整的命名空間名稱:
namespace A\B\C; //To define the constant A\B\C\FOO: const FOO = 'BAR'; define('A\B\C\FOO', 'BAR');推薦學習:《
PHP影片教學》
以上是php中定義常數的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!