PHP常量常用的格式用什么定义,PHP | 常量 知识梳理与运用详析
1. 常量的定義
常量可以理解為值不變的量(如圓周率);
或者是常量值被定義后,在腳本的其他任何地方都不可以被改變;
PHP中的常量分為自定義常量和系統常量。
自定義常量是根據我們開發的需要而定義的常量,通過使用PHP中的函數define()定義。
define()函數的語法格式:
bool define(string $constant_name, mixed $value[, $case_sensitive = false])
第一個參數constant_name為必選參數,要傳入的是一個常量名稱,即標志符,是一個不帶美元符號的string;
常量的命名規則與變量的一致,不同的是它不帶美元符號,待會可以看下demo代碼;
第二個參數value為必選參數,它是常量的值;
第三個參數case_sensitive為可選參數,指定是否大小寫敏感;
設定為true表示不敏感;
一般不指定第三個參數的情況下,默認第三個參數的值為false,即敏感。
另外:
string表示參數類型為字符串類型;
mixed表示參數類型可以接受為多種不同的類型;
case_sensitive = false表示默認為布爾類型false,即敏感.
demo:
$p = "PII";//第二種定義方式
define("PI",3.14);//第一種定義方式
define($p,3.14);//第二種定義方式
echo PI;
echo "
";
echo PII;
?>
如上兩種定義方式:
第一條種比較直觀;
第二種則使用起來比較靈活;
運行結果:
3.14
3.14
再demo:
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
echo "
";
define("GREETING", "Welcome to W3School.com.cn!", true);
echo greeting;
?>
如上,
第一個define默認定義大小寫敏感;
第二個為不敏感;
運行結果:
Welcome to W3School.com.cn!
Welcome to W3School.com.cn!
2. 常量的作用
可以避免重復定義,篡改變量值。
在進行團隊開發時,或者代碼量很大的時候,對于一些第一次定義后不改變的量,如果使用變量,在不知情的情況下,使用同一變量名時,變量值就會被替換掉,從而會引發服務器執行錯誤的任務;
使用常量還能提高代碼的可維護性。
如果由于某些原因,常量的值需要變更時候,我們只需要修改一個地方。
例如在做計算中,起初我們取圓周率為3.14,于是很多計算中我們都使用3.14進行計算,當要求計算精度提高,圓周率需要取3.142的時候,我們不得不修改所有使用3.14的代碼,倘若代碼量比較多時,不僅工作量大,還可能遺漏。
demo:
define("PI",3.14);
$r=3;
echo "面積為:".(PI*$r*$r)."
";
echo "周長為:".(2*PI*$r)."
";
?>
運行結果:
面積為:28.26
周長為:18.84
3. 系統常量
系統常量是PHP已經定義好的常量,可以直接拿來使用,常見的系統常量有:
a. __FILE__ :php程序文件名。獲取當前文件在服務器的物理位置。
b. __LINE__ :PHP程序文件行數。獲取當前代碼在第幾行。
c. PHP_VERSION:當前解析器的版本號。獲取當前PHP解析器的版本號,可以提前知道我們的PHP代碼是否可被該PHP解析器解析。
d.PHP_OS:執行當前PHP版本的操作系統名稱。獲取服務器所用的操作系統名稱,可以根據該操作系統優化代碼。
demo:
echo __FILE__;
echo "
";
echo __LINE__;
echo "
";
echo PHP_VERSION;
echo "
";
echo PHP_OS;
echo "
";
?>
運行結果:
index.php
4
5.3.29
Linux
4. 常量的取值
獲取常量值的有兩種方法取值:
第一種是使用常量名直接獲取值,如上方“2. 常量的作用”中的demo;
第二種是使用constant()函數。
它和直接使用常量名輸出的效果是一樣的,但函數可以動態的輸出不同的常量,在使用上要靈活、方便,
其語法格式如下:
mixed constant(string constant_name)
參數constant_name為要獲取常量的名稱,
也可為存儲常量名的變量。
如果成功則返回常量的值,失敗則提示錯誤信息常量沒有被定義。
另外,
mixed表示函數返回值類型為多種不同的類型,
string表示參數類型為字符串類型;
demo:
$p="";
//定義圓周率的兩種取值
define("PI1",3.14);
define("PI2",3.142);
//定義值的精度
$height = "中";
//根據精度返回常量名,將常量變成了一個可變的常量
if($height == "中"){
$p = "PI1";
}else if($height == "低"){
$p = "PI2";
}
$r=1;
$area = constant($p)*$r*$r;
echo $area;
echo "
";
$height = "低";
if($height == "中"){
$p = "PI1";
}else if($height == "低"){
$p = "PI2";
}
$area1 = constant($p)*$r*$r;
echo $area1;
?>
運行結果:
3.14
3.142
5. 如何判定常量是否被定義
常量被重復定義時,PHP解析器會發出Constant XXX already defined的警告,提醒我們該常量已經被定義過;
defined()函數可以幫助我們判斷一個常量是否已經定義,其語法格式為:
bool defined(string constants_name)
它只有參數constant_name,傳入要判斷的常量名稱;
若存在則返回布爾類型true,否則返回false; (bool表示函數返回值類型為布爾類型)
demo:
define("PI1",3.14);
$p = "PI1";
$is1 = defined($p);
$is2 = defined("PI2");
var_dump($is1);
var_dump($is2);
?>
運行結果:
bool(true)
bool(false)
總結
以上是生活随笔為你收集整理的PHP常量常用的格式用什么定义,PHP | 常量 知识梳理与运用详析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java异步调用数据库存储过程详解,ja
- 下一篇: .net 连接php,NetBeans平