PHP define()和const:定义常量
和变量相对应的是常量,本节我们就来学习一下 PHP 中的常量。
PHP 常量通常用来存储一个不被改变也不希望变化的数据,该数据只能是四种标量数据类型的数据:整型、浮点型、字符串、布尔型,不过从 PHP7 开始常量支持了数组(array)类型。
与变量相比,常量具有以下几个特点:
除了可以使用 define() 函数之外,还可以使用 const 关键字来定义常量,const 关键字的语法如下:
什么是常量
所谓常量就是不能改变的量,PHP 中常量一旦被定义,就不能被修改或取消定义。PHP 常量通常用来存储一个不被改变也不希望变化的数据,该数据只能是四种标量数据类型的数据:整型、浮点型、字符串、布尔型,不过从 PHP7 开始常量支持了数组(array)类型。
与变量相比,常量具有以下几个特点:
- 常量前面没有美元符号($);
- 常量只能用 define() 和 const 定义;
- 常量的作用域是全局的;
- 常量一旦被定义就不能被重新定义或者取消定义。
定义常量
合法的常量名只能以字母和下划线开始,后面可以跟着任意长度的字母、数字或下划线。在 PHP 中可以通过 define() 函数定义一个常量,define() 函数的语法如下:define(string $name, mixed $value [, bool $case_insensitive = false])
define() 函数参数的说明如下表所示:参数 | 说明 |
---|---|
$name | 必选参数,常量名称(需要使用双引号或单引号包裹) |
$value | 必选参数,常量的值 |
$case_insensitive | 可选参数,指定是否大小写敏感,默认是大小写敏感的,设定为 true 则表示大小写不敏感 |
除了可以使用 define() 函数之外,还可以使用 const 关键字来定义常量,const 关键字的语法如下:
const 常量名 = 常量值;
下面通过示例来演示一下常量的使用:<?php define('WebSite', '新宝库'); const url = 'https://www.xinbaoku.com/php/'; echo WebSite.'<br>'; echo url; ?>运行结果如下:
新宝库
https://www.xinbaoku.com/php/
获取常量的值
想要获取常量的值,除了可以直接使用常量名外,还可以使用 constant() 函数,使用函数和直接使用常量名的效果是一样的。但使用函数可以动态输出不同的常量,在使用上要灵活、方便得多,constant() 函数的语法格式为:constant(string $name);
其中 $name 为要获取的常量名称,也可以是存储常量名的变量。如果成功则返回常量的值;如果常量未定义则返回一个 E_WARNING 级别的错误。示例代码如下:<?php define('WebSite', '新宝库'); const url = 'https://www.xinbaoku.com/php/'; $website = 'WebSite'; $url = 'url'; echo constant($website).'<br>'; echo constant($url); ?>运行结果如下:
新宝库
https://www.xinbaoku.com/php/
判断常量是否存在
要判断一个常量是否已经定义,可以使用 defined() 函数。函数的语法格式如下:defined(string $name)
其中 $name 为待判断的常量名称,函数会返回一个 bool 类型的值,常量已定义则返回 true,未定义则返回 false。示例代码如下:<?php define('WebSite', '新宝库'); const url = 'https://www.xinbaoku.com/php/'; var_dump(defined('WebSite')); echo '<br>'; var_dump(defined('url')); ?>运行结果如下:
bool(true)
bool(true)
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算