以下为学习孔祥盛主编的《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_Savefirsthelloworld.php on line 7 student root Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "PASSWORD" in D:phpStorm_Savefirsthelloworld.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_Savefirsthelloworld.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_Savefirsthelloworld.php 4 7.3.5 WINNT