以下為學習孔祥盛主編的《PHP編程基礎與實例教程》(第二版)所做的筆記。
PHP常量分為自定義常量與預定義常量。
1.自定義常量
在使用前必須先定義,PHP的define()函數專門用於定義自定義常量,define()函數的語法格式為:define(name,value[,boolean case_insensitive])。
函數功能:定義一個名字為name,值為value的常量。case_insensitive參數的默認值為FALSE,表示常量名name大小寫敏感(區分大小寫);case_insensitive參數值如果為TRUE,表示常量名name大小寫不敏感(不區分大小寫)。
函數說明:常量名name為字符串類型數據,常量值value必須是標量數據類型數據。
( 注意:函數的語法格式中某個參數使用 “ [ ] ”括起來,表示該參數是 “ 可選參數 ” (不是必需的) 。 )
1 <?php 2 //定義DATABASE常量,此時DATABASE常量名大小寫敏感 3 define("DATABASE","student"); 4 //定義USER_NAME常量,此時USER_NAME大小寫敏感 5 define("USER_NAME","root",FALSE); 6 //定義PASSWORD常量,此時PASSWORD大小寫不敏感 7 define("PASSWORD","root",TRUE); 8 9 //輸出:student 10 echo DATABASE; 11 echo"<br/>"; 12 //輸出:root 13 echo USER_NAME; 14 echo"<br/>"; 15 //輸出:root 16 echo password; 17 ?>
輸出:
Deprecated: define(): Declaration of case-insensitive constants is deprecated in D:\phpStorm_Save\first\helloworld.php on line 7 student root Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "PASSWORD" in D:\phpStorm_Save\first\helloworld.php on line 16 root
常量的定義需要注意以下幾點:
1.常量必須使用define()函數定義,常量名前面不加前綴美元‘$’符號。
2.常量名由字母或者下畫線開頭,后面跟上任意數量的字母、數字或者下畫線。
3.常量名可以是全部大寫、全部小寫或者大小寫混合,但一般習慣是全部大寫。
4.常量的作用域是全局的,不存在使用范圍的問題,可以在程序任意位置進行定義和使用。
5.常量一旦被定義,其值不能在程序運行過程中修改,也不能被銷毀。例如,程序如下
1 1 <?php 2 2 define("DATABASE","student"); 3 3 //重新定義DATABASE常量,此時將出現Notice信息 4 4 define("DATABASE","root"); 5 5 6 6 //輸出:student 7 7 echo DATABASE; 8 8 ?>
輸出:
Notice: Constant DATABASE already defined in D:\phpStorm_Save\first\helloworld.php on line 4 student
從程序運行結果來看,PHP產生Notice信息后,並不會影響程序的繼續運行。
2.預定義常量
PHP預定義了許多常量,這些常量無需使用define()函數定義,可直接在程序中使用。下面列舉了一些常用的PHP預定義常量。
(1)__FILE__(FILE前后分別是兩個下畫線):當前正在處理的腳本文件名,若使用在一個被引用的文件中(include或require),那么 它的值就是被引用的文件,而不是引用它的那個文件。
(2)__LINE__(LINE前后分別是兩個下畫線):正在處理的腳本文件的當前行數。
(3)PHP_VERSION:當前PHP預處理器的版本,如5.4.16。
(4)PHP_OS: PHP所在的操作系統的類型。如Linux。
(5)TRUE:表示邏輯真。FALSE:表示邏輯假。NULL:表示沒有值或值不確定。
(6)DIRECTORY_SEPARATOR: 表示目錄分隔符,UNIX或Linux操作系統環境時的值為“ / ”, Window操作系統環境時的值為 “ \ ”。
<?php echo __FILE__; echo "<br/>"; echo __LINE__; echo "<br/>"; echo PHP_VERSION; echo "<br/>"; echo PHP_OS; echo "<br/>"; echo DIRECTORY_SEPARATOR; ?>
輸出:
D:\phpStorm_Save\first\helloworld.php 4 7.3.5 WINNT \