php中定義常數的方法是什麼

2022-02-09 19:00:06

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', 'TW511.COM');
echo WebSite.'<br>';
?>

1.png

const關鍵字定義常數

語法:

const 常數名 = 常數值;

範例:

<?php
const FOO = 'BAR';
echo FOO.'<br>';
?>

2.png

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中定義常數的方法是什麼的詳細內容,更多請關注TW511.COM其它相關文章!