# 常量 [TOC] 首先,什么是常量呢?常量就是值**永远不变的量**。一旦定义了常量,无法更改或撤销定义且常量无法删除。 常量的值可以是:字符串型、整型、浮点型、布尔型、null、数组(PHP7新加),**注意:常量的值不能是对象和资源**。 常量的**值永远属于全局**的,**在脚本的任何地方都可以访问**,请跟变量区分开来。 ## 常量的命令规则 * [ ] 常量的命名规则与变量一样,只能包含字母、数字、下划线。 * [ ] 常量前面不能带`$`符号 * [ ] 常量 **不区分大小写** 但是强烈推荐常量一概大写 ## 常量的定义 ``` <?php # 语法 define('常量名称','常量的值',[是否大小写敏感 ture|false] 默认为大小写敏感); ``` ## 常量的判断 当我们设置了一个常量,那么我们该怎么去判断这个常量是否已经定义呢?PHP为我们提供了一个函数:defined来判断常量是否已定义。如果该值已定义返回true,没有定于返回false。注意:defined**只能检查常量不能对变量使用**。 ``` <?php # 语法 define('DATABASE','PHP'); if(defined('DATABASE')) { echo '真', }else{ echo '假', } ``` ## 预定义常量 什么是预定义常量,也是就我们系统直接定义好的常量,拿来就可以使用。PHP预定义常量非常非常多,下面就介绍几个 **PHP常用的预定义常量,以下7个:** | 预定义常量 | 含义 | | --- | :-: | | PHP\_VERSION | 获取PHP的版本号 | | PHP\_OS | PHP运行的平台 | | M\_PI | 圆周率3.14159.... | | TRUE | 是关键字,也是常量 | | FALSE | 关键字,也是常量 | | PHP\_INT\_MAX | 最大的整数 | | PHP\_INT\_MIN | 最小的整数 | >[danger] 注意:如果说整数值超过了最大和最小整数的取值,那么是会报错的! ``` <?php # 语法 echo 'PHP的版本号是:' . PHP_VERSION; echo 'PHP运行平台是:' . PHP_OS; ... ``` ## 魔术常量 所谓`“魔术常量”`就是这些常量的值,会根据所在的位置而发生改变,即:形式是常量,但值可变 **PHP常用的魔术常量,有以下7个:** | 魔法常量 | 含义 | | --- | --- | | \_\_DIR\_\_ | 当前文件所在的目录,不包括当前脚本 | | \_\_FILE\_\_ | 当前文件的绝对路径,包括当前脚本 | | \_\_LINE\_\_ | 当前行号 | | \_\_FUNCTION\_\_ | 当前函数名称 | | \_\_CLASS\_\_ | 当前类名称 | | \_\_METHOD\_\_ | 当前方法名称 | | \_\_NAMESPACE\_\_ | 当前空间名称 | ``` <?php # 语法 echo __DIR__; echo __FILE__; echo __LINE__; ... ``` ![](https://i.loli.net/2019/03/21/5c9381c09cff2.png)