您好,登錄后才能下訂單哦!
這篇“php define如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“php define如何使用”文章吧。
在php中,define()函數用于定義一個常量,語法“define($name, $value , $case_insensitive)”;參數“$case_insensitive”用于指定常量是否大小寫敏感,默認是大小寫敏感的,值設定為true則表示大小寫不敏感。常量一旦被定義就不能被重新定義或者取消定義。
define是PHP中的一個內置函數,用于定義一個常量。
常量是一個簡單的標識符。在腳本執行期間該值不能改變(除了所謂的魔術常量,他們其實不是常量)。常量默認大小寫敏感。通常常量標識符總是大寫的。
常量類似變量,不同之處在于:在設定以后,常量的值無法更改常量名,不需要開頭的美元符號 ($),作用域不影響對常量的訪問,常量值只能是字符串或數字。
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', '億速云');
echo WebSite.'<br>';
?>
擴展知識:
const關鍵字定義常量
在php5.3.0以后,可以使用const關鍵字在類定義的外部定義常量,先前版本const關鍵字只能在類(class)中使用。
語法:
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 define如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。