以下为学习孔祥盛主编的《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
\