目錄
[1]常量定義 [2]自定義常量 [3]系統(tǒng)常量 [4]常量取值 [5]defined()常量定義
常量類似變量,但常量一旦被定義就無法更改或撤銷定義。常量最主要的作用是可以避免重復(fù)定義,篡改變量值,提高代碼可維護(hù)性。有效的常量名以字符或下劃線開頭(常量名稱前面沒有$符號(hào))。通常,常量全用大寫。PHP中的常量分為自定義常量和系統(tǒng)常量
[注意]與變量不同,常量貫穿整個(gè)腳本是自動(dòng)全局的
?
自定義常量
自定義常量使用define()函數(shù),它使用三個(gè)參數(shù)
[1]首個(gè)參數(shù)定義常量的名稱
[2]第二個(gè)參數(shù)定義常量的值
[3]可選的第三個(gè)參數(shù)規(guī)定常量名是否對(duì)大小寫敏感,默認(rèn)是false
define()函數(shù)的語法格式為:
bool <span style="color: #008080;">define</span>(<span style="color: #0000ff;">string</span> <span style="color: #800080;">$constant_name</span>, <span style="color: #0000ff;">mixed</span> <span style="color: #800080;">$value</span>[, <span style="color: #800080;">$case_sensitive</span> = <span style="color: #0000ff;">true</span>])
<?<span style="color: #000000;">php</span><span style="color: #800080;">$p</span> = 'PI0'<span style="color: #000000;">;</span><span style="color: #008080;">define</span>('PI',3.14<span style="color: #000000;">);</span><span style="color: #008080;">define</span>('PI',3.15);<span style="color: #008000;">//</span><span style="color: #008000;">無效,因?yàn)槌A繜o法被修改定義</span><span style="color: #008080;">define</span>(<span style="color: #800080;">$p</span>,3.14<span style="color: #000000;">);</span><span style="color: #0000ff;">echo</span> <span style="color: #008080;">PI</span>;<span style="color: #008000;">//</span><span style="color: #008000;">3.14</span><span style="color: #0000ff;">echo</span> "<br>"<span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> PI0;<span style="color: #008000;">//</span><span style="color: #008000;">3.14</span>?>
?
系統(tǒng)常量
系統(tǒng)常量是PHP已經(jīng)定義好的常量,常見的系統(tǒng)常量有:
[1]__FILE__:php程序文件名。獲取當(dāng)前文件在服務(wù)器的物理位置
[2]__LINE__:PHP程序文件行數(shù)。表示當(dāng)前代碼在第幾行
[3]PHP_VERSION:當(dāng)前解析器的版本號(hào)??梢蕴崆爸繮HP代碼是否可被該P(yáng)HP解析器解析
[4]PHP_OS:執(zhí)行當(dāng)前PHP版本的操作系統(tǒng)名稱。告訴服務(wù)器所用的操作系統(tǒng)名稱,根據(jù)該操作系統(tǒng)優(yōu)化代碼
<?<span style="color: #000000;">php</span><span style="color: #0000ff;">echo</span> <span style="color: #ff00ff;">__FILE__</span>;<span style="color: #008000;">//</span><span style="color: #008000;">D:\wamp\www\1.php</span><span style="color: #0000ff;">echo</span> "<br />"<span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> <span style="color: #ff00ff;">__LINE__</span>;<span style="color: #008000;">//</span><span style="color: #008000;">11</span><span style="color: #0000ff;">echo</span> "<br />"<span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> <span style="color: #ff00ff;">PHP_VERSION</span>;<span style="color: #008000;">//</span><span style="color: #008000;">5.5.12</span><span style="color: #0000ff;">echo</span> "<br />"<span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> <span style="color: #ff00ff;">PHP_OS</span>;<span style="color: #008000;">//</span><span style="color: #008000;">WINNT</span><span style="color: #0000ff;">echo</span> "<br />"<span style="color: #000000;">;</span>?>
?
常量取值
獲取常量值有兩種方法:一種是使用常量名直接獲取值;另一種是使用constant()函數(shù)
constant()函數(shù)語法格式為:mixed constant(string constant_name)
<?<span style="color: #000000;">php</span><span style="color: #800080;">$p</span><span style="color: #000000;">;</span><span style="color: #008080;">define</span>("PI1",3.14<span style="color: #000000;">);</span><span style="color: #008080;">define</span>("PI2",3.142<span style="color: #000000;">);</span><span style="color: #800080;">$height</span> = "中"<span style="color: #000000;">;</span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$height</span> == "中"<span style="color: #000000;">){ </span><span style="color: #800080;">$p</span> = "PI1"<span style="color: #000000;">;}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #800080;">$p</span> = "PI2"<span style="color: #000000;">;}</span><span style="color: #800080;">$r</span> = 1<span style="color: #000000;">;</span><span style="color: #800080;">$area</span> = <span style="color: #008080;">constant</span>("PI") * <span style="color: #800080;">$r</span> * <span style="color: #800080;">$r</span><span style="color: #000000;">;</span><span style="color: #0000ff;">echo</span> <span style="color: #800080;">$area</span><span style="color: #000000;">;</span>?>
?
defined()函數(shù)
如果常量被重復(fù)定義后,PHP解析器會(huì)發(fā)出"Constant XXX already defined"的警告,提醒該常量已被定義過
defined()函數(shù)用來判斷一個(gè)常量是否已經(jīng)定義,其語法格式為:
bool <span style="color: #008080;">defined</span>(<span style="color: #0000ff;">string</span> constants_name)
若存在則返回true,否則返回false
<?<span style="color: #000000;">php </span><span style="color: #008080;">define</span>("PI1",3.14<span style="color: #000000;">);</span><span style="color: #800080;">$p</span> = "PI1"<span style="color: #000000;">;</span><span style="color: #800080;">$is1</span> = <span style="color: #008080;">defined</span>(<span style="color: #800080;">$p</span><span style="color: #000000;">);</span><span style="color: #800080;">$is2</span> = <span style="color: #008080;">defined</span>("PI2"<span style="color: #000000;">);</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$is1</span>);<span style="color: #008000;">//</span><span style="color: #008000;">bool(true)</span><span style="color: #008080;">var_dump</span>(<span style="color: #800080;">$is2</span>);<span style="color: #008000;">//</span><span style="color: #008000;">bool(false)</span>?>
?