什么是常量
常量可以理解為值不變的量(如圓周率);或者是常量值被定義后,在腳本的其他任何地方都不可以被改變。PHP中的常量分為自定義常量和系統(tǒng)常量**
自定義常量
自定義常量是根據(jù)我們開發(fā)的需要,而定義的常量,它通過使用PHP中的函數(shù)define()
定義。
bool define(string $constant_name, mixed $value[, $case_sensitive = true])
-
constant_name
必選,常量名稱,即標(biāo)志符,常量的命名規(guī)則與變量的一致,它可不帶美元符號。 -
value
必選,常量的值。 -
case_sensitive
可選,指定大小寫是否敏感,設(shè)定為true表示不敏感,不指定第三個參數(shù)的時,默認(rèn)第三個參數(shù)的值為false。
string
表示參數(shù)類型為字符串類型,
mixed
表示參數(shù)類型可以接受為多種不同的類型,
case_sensitive = true
表示默認(rèn)為布爾類型TRUE
<?php
$p = "PII";
define("PI",3.14);
define($p,3.14);//注意這里變量指向常量
echo PI;//3.14
echo "<br />";//3.14
echo PII;
?>
系統(tǒng)常量
PHP已經(jīng)定義好的常量,我們可以直接拿來使用,常見的系統(tǒng)常量有:
(1)\__FILE__
:php程序文件名。它可以幫助我們獲取當(dāng)前文件在服務(wù)器的物理位置。(這里有兩個_
,__
)
(2)\__LINE__
:PHP程序文件行數(shù)。它可以告訴我們,當(dāng)前代碼在第幾行。(這里有兩個_
,__
)
(3)PHP_VERSION
:當(dāng)前解析器的版本號。它可以告訴我們當(dāng)前PHP解析器的版本號,我們可以提前知道我們的PHP代碼是否可被該P(yáng)HP解析器解析。
(4)PHP_OS
:執(zhí)行當(dāng)前PHP版本的操作系統(tǒng)名稱。它可以告訴我們服務(wù)器所用的操作系統(tǒng)名稱,我們可以根據(jù)該操作系統(tǒng)優(yōu)化我們的代碼。
常量如何取值
第一種是使用常量名直接獲取值
第二種是使用constant()
函數(shù)
<?php
$p="";//constant()函數(shù)接收字符串作為參數(shù),所以有冒號。
//定義圓周率的兩種取值
define("PI1",3.14);
define("PI2",3.142);
//定義值的精度
$height = "中";
//根據(jù)精度返回常量名,將常量變成了一個可變的常量
if($height == "中"){
$p = "PI1";//constant()函數(shù)接收字符串作為參數(shù),所以有冒號。
}else if($height == "低"){
$p = "PI2";
}
$r=1;
$area=constant($p)*$r*$r;
echo $area;
?>
PHP-如何判定常量是否被定義
defined()
函數(shù)可以幫助我們判斷一個常量是否已經(jīng)定義:
bool defined(string constants_name)
它只有參數(shù)
constant_name
,指的是要獲取常量的名稱,若存在則返回布爾類型true,否則返回布爾類型false;(注:bool表示函數(shù)返回值類型為布爾類型)
<?php
define("PI1",3.14);
$p = "PI1";
$is1=defined($p);
$is2=defined("PIi");
var_dump($is1);//bool(true)
var_dump($is2);//bool(true)