php - 常量

什麼是常量

什麼是常量?

常量可以理解爲值不變的量(如圓周率);或者是常量值被定義後,在腳本的其他任何地方都不可以被改變。


PHP中的常量分爲自定義常量和系統常量。


自定義常量是根據我們開發的需要,而定義的常量,它通過使用PHP中的函數define()定義。


注:函數,我們可以理解爲一個混凝土攪拌機,亦或是一個篩子,通過入口提供原料,然後出口產出結果,在函數中也允許入口不提供任何數據,出口也允許不返回任何值。


define()函數的語法格式爲:

bool define(string $constant_name, mixed $value[, $case_sensitive = true])

它有3個參數(也就是原料):

第一個參數“constant_name”爲必選參數,常量名稱,即標誌符,常量的命名規則與變量的一致,但是要注意哦,它可不帶美元符號哦。

第二個參數“value”爲必選參數,它是常量的值。

第三個參數“case_sensitive”爲可選參數,指定是否大小寫敏感,設定爲true表示不敏感,一般不指定第三個參數的情況下,默認第三個參數的值爲false。

(注: string表示參數類型爲字符串類型,mixed表示參數類型可以接受爲多種不同的類型,case_sensitive = true表示默認爲布爾類型TRUE)





常量的作用

常量有什麼用呢?

常量主要功效是可以避免重複定義,篡改變量值。


在我們進行團隊開發時,或者代碼量很大的時候,對於一些第一次定義後不改變的量,如果我們使用變量,在不知情的情況下,使用同一變量名時,變量值就會被替換掉,從而會引發服務器執行錯誤的任務。


此外,使用常量還能提高代碼的可維護性。

如果由於某些原因,常量的值需要變更時候,我們只需要修改一個地方。


例如在做計算中,起初我們取圓周率爲3.14,於是很多計算中我們都使用3.14進行計算,當要求計算精度提高,圓周率需要取3.142的時候,我們不得不修改所有使用3.14的代碼,倘若代碼量比較多時,不僅工作量大,還可能遺漏。



系統常量

系統常量是PHP已經定義好的常量,我們可以直接拿來使用,常見的系統常量有:

(1)__FILE__  : php程序文件名。它可以幫助我們獲取當前文件在服務器的物理位置。

(2)__LINE__  : PHP程序文件行數。它可以告訴我們,當前代碼在第幾行。

(3)PHP_VERSION : 當前解析器的版本號。它可以告訴我們當前PHP解析器的版本號,我們可以提前知道我們的PHP代碼是否可被該PHP解析器解析。

(4)PHP_OS : 執行當前PHP版本的操作系統名稱。它可以告訴我們服務器所用的操作系統名稱,我們可以根據該操作系統優化我們的代碼。






常量如何取值

定義了常量,那麼就要使用常量,那麼如何獲取常量值呢?


獲取常量值的有兩種方法取值:


第一種是使用常量名直接獲取值;


例如計算圓周率的面積,如下(“*”是運算符,相當於乘號,後面部分的小節會介紹):

<?php
    define("PI",3.14);
    $r=1;
    $area = PI*$r*$r; //計算圓的面積
?>


第二種是使用constant()函數。


它和直接使用常量名輸出的效果是一樣的,但函數可以動態的輸出不同的常量,在使用上要靈活、方便,


其語法格式如下:

mixed constant(string constant_name)

第一個參數constant_name爲要獲取常量的名稱,也可爲存儲常量名的變量。


如果成功則返回常量的值,失敗則提示錯誤信息常量沒有被定義。(注:mixed表示函數返回值類型爲多種不同的類型,string表示參數類型爲字符串類型)


例如:

B64B43FEBE8C465C879CBC3229A24AF6






如何判定常量是否被定義

如果常量被重複定義以後,PHP解析器會發出“Constant XXX already defined”的警告,提醒我們該常量已經被定義過。


那麼,在團隊開發,或代碼量很大的情況下,我們如何去判定一個常量是否被定義呢?


defined()函數可以幫助我們判斷一個常量是否已經定義,其語法格式爲:


bool defined(string constants_name)


它只有參數constant_name,指的是要獲取常量的名稱,若存在則返回布爾類型true,否則返回布爾類型false; (注:bool表示函數返回值類型爲布爾類型)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章