# 常量
[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)
- 基础
- 安装PHP
- 语言基础
- 变量
- 变量操作
- 超全局数组变量
- 变量作用域
- 变量传值方式
- 常量
- 数据类型
- 运算符
- 流程控制
- 文件包含
- 错误处理
- 字符串操作
- 数组
- 函数
- 进阶
- 面向对象
- 提高
- TP
- 安装项目
- 框架基础知识
- 命令创建模块
- URL生命周期
- 路由操作
- Request请求类
- 参数绑定
- 依赖注入
- 模板操作
- 查询操作
- 添加操作
- laravel
- ☆目录结构
- CSRF攻击
- ☆路由
- ☆控制器
- ☆请求类
- ☆视图
- ☆模板继承
- ☆表单验证
- ☆DB类
- ☆模型
- ☆数据库迁移
- 类型、修饰、索引
- ☆数据填充
- ☆数据分页
- ☆session处理
- ☆中间件
- ☆缓存操作
- ☆文件上传
- ☆接口操作
- ☆扩展插件
- restful
- 工作
- 工作记录
- QQ登录
- 新浪登录
- 微信登录
- sphinx搜索
- 数据库
- MySQL
- ☆数据库操作
- ☆数据表操作
- ☆数据的操作
- 待修改
- 优化
- 存储引擎选择
- 列表类型选择
- 范式
- 慢日志查询
- 精准时间记录查询
- 计划任务 explain
- 索引
- 索与事务
- 查询缓存
- 存储过程
- 触发器
- 分区
- 分表
- sphinx
- 读写分离
- 搜索优化
- 网站静态化
- Memcache
- Mongodb
- Readis
- php使用redis
- 服务器
- Linux
- 目录结构
- 常用命令
- VIM编辑器
- 用户与用户组
- 权限管理
- 运行级别
- 网络模式
- ssh
- 软件安装
- 计划任务
- Ubuntu
- 编译PHP7.3
- 编译MySQL
- 编译Nginx
- apache虚拟机配置
- 安装composer
- Nginx
- Git