当前位置: 首页 > 文章教程  > 计算机与互联网 > 网络编程

3.1.1自定义常量

9/17/2020 9:37:07 PM 人评论

3.1.1自定义常量

3.1 常量

PHP有时使用常量实现数据在内存中的存储,使用常量名实现内存数据的按名存取。常量是指在程序运行过程中始终保持不变的量。常量一旦被定义,常量的值以及常量的数据类型将不再发生变化。PHP常量分为自定义常量和预定义常量。

3.1.1 自定义常量

自定义常量在使用前必须定义,PHP 的 define()函数专门用于定义自定义常量,define()函数的语法格式为:define(name,value[, boolean case_insensitive])。

函数功能:定义一个名字为 name,值为 value 的常量。case_insensitive 参数的默认值为FALSE,表示常量名name大小写敏感(区分大小写);case_insensitive参数值如果为TRUE,表示常量名name大小写不敏感(不区分大小写)。

函数说明:常量名name为字符串类型数据,常量值value必须是标量数据类型数据。

figure_0039_0062函数的语法格式中某个参数使用“[ ]”括起来,表示该参数是“可选参数”(不是必需的)。函数中可选参数都会有一个默认值,在函数调用时,如果不给可选参数传递值,那么默认值将赋给可选参数。如define()函数中,参数case_insensitive 是一个可选参数。

例如,程序define.php如下。

<?php

//定义DATABASE常量,此时DATABASE常量名大小写敏感

define("DATABASE","student");

//定义USER_NAME常量,此时USER_NAME大小写敏感

define("USER_NAME","root",FALSE);

//定义PASSWORD常量,此时PASSWORD大小写不敏感

define("PASSWORD","root",TRUE);

echo DATABASE;   //输出:student

echo "<br/>";

echo USER_NAME;   //输出:root

echo "<br/>";

echo password;   //输出:root

?>

常量的定义及使用注意如下几点。

(1)常量必须使用define()函数定义,常量名前面不加前缀“$”符号。

(2)常量名由字母或者下画线开头,后面跟上任意数量的字母、数字或者下画线。

(3)常量名可以是全部大写、全部小写或者大小写混合,但一般习惯是全部大写。

(4)常量的作用域是全局的,不存在使用范围的问题,可以在程序任意位置进行定义和使用常量。

(5)常量一旦被定义,其值不能在程序运行过程中修改,也不能被销毁。例如,程序defineError.php如下,该程序的运行结果如图3-1所示。

<?php

define("DATABASE","student");

//重新定义DATABASE常量,此时将出现Notice信息

define("DATABASE","root",FALSE);

echo DATABASE; //输出:student

?>

figure_0040_0063
图3-1 常量示例程序运行结果

由于程序defineError.php试图修改已定义常量DATABASE的值,程序产生Notice信息。从程序的运行结果可以看出,PHP产生Notice信息后,并不会影响程序的继续运行。

3.1.2 常量的内存分配

内存中专门为常量的存储分配了一个空间:常量存储区。常量存储区是一块比较特殊的存储空间,位于该存储空间的常量是全局的,且在程序运行期间不能修改和销毁。程序 define.php 运行过程中的内存分配图如图3-2所示。

figure_0040_0064
图3-2 常量在内存的分配

3.1.3 预定义常量

PHP预定义了许多常量,这些常量无需使用define()函数定义,可直接在程序中使用。下面列举了一些常用的PHP预定义常量。

(1)__FILE__(FILE前后是两个下画线):当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require),那么它的值就是被引用的文件,而不是引用它的那个文件。

(2)__LINE__(LINE前后是两个下画线):正在处理的脚本文件的当前行数。

(3)PHP_VERSION:当前 PHP预处理器的版本,如5.3.0。

(4)PHP_OS:PHP所在的操作系统的类型,如Linux。

(5)TRUE:表示逻辑真。FALSE:表示逻辑假。NULL:表示没有值或值不确定。

(6)DIRECTORY_SEPARATOR:表示目录分隔符,UNIX或Linux操作系统环境时的值为“/”, Windows操作系统环境时的值为“\”。例如,程序preDefined.php如下。

<?php

echo __FILE__; //输出:C:\wamp\www\3\preDefined.php

echo "<br/>";

echo __LINE__; //输出:4

echo "<br/>";

echo PHP_VERSION; //输出:5.3.0

echo "<br/>";

echo PHP_OS; //输出:WINNT

echo "<br/>";

echo DIRECTORY_SEPARATOR; //输出:\

?>

相关教程

共有条评论 网友评论

验证码: 看不清楚?