PHP 常量(Constants)
1. 什么是常量?
常量(Constant)是一个不可改变的变量,在 PHP 运行期间一旦被定义,就不能再更改或取消定义。
2. 定义常量
PHP 提供两种定义常量的方法:
define()(PHP 5.3+ 推荐)const关键字(PHP 5.3+)
2.1 使用 define()
<?php
define("SITE_NAME", "MyWebsite"); // 定义一个常量
echo SITE_NAME; // 输出: MyWebsite
?>
- 常量名称必须是 字符串,且通常采用 全大写 命名风格。
- 不能使用
$符号(常量与变量的区别)。 define()可以在条件语句内定义。
2.2 使用 const
<?php
const DB_NAME = "my_database";
echo DB_NAME; // 输出: my_database
?>
const只能用于 全局作用域 或 类中,不能在条件语句或函数内定义。const在编译时定义,define()在运行时定义。
3. 检查常量是否已定义
使用 defined() 函数:
<?php
define("VERSION", "1.0.0");
if (defined("VERSION")) {
echo "常量 VERSION 已定义";
} else {
echo "常量 VERSION 未定义";
}
?>
4. 预定义常量
PHP 提供了一些内置常量,例如:
<?php
echo PHP_VERSION; // 输出 PHP 版本
echo PHP_OS; // 输出 PHP 运行的操作系统
echo __FILE__; // 输出当前文件路径
echo __LINE__; // 输出当前代码行号
?>
完整列表参考官方文档:PHP 预定义常量。
5. 大小写敏感性
define()默认大小写敏感:
<?php
define("MY_CONSTANT", "Hello");
echo MY_CONSTANT; // 输出: Hello
echo my_constant; // 错误: Undefined constant
?>
const总是大小写敏感,不能修改。
6. 常量数组
PHP 5.6+ 允许定义数组常量:
<?php
define("COLORS", ["Red", "Green", "Blue"]);
echo COLORS[0]; // 输出: Red
?>
7. 使用 const 在类中定义常量
<?php
class MyClass {
const APP_VERSION = "2.0.1";
}
echo MyClass::APP_VERSION; // 输出: 2.0.1
?>
- 类中的常量只能使用
const关键字,不能使用define()。
8. 魔术常量
PHP 提供了一些 魔术常量,它们的值会随着上下文变化:
| 常量 | 说明 |
|---|---|
__LINE__ | 当前代码行号 |
__FILE__ | 当前文件的完整路径 |
__DIR__ | 当前文件所在目录 |
__FUNCTION__ | 当前函数名称 |
__CLASS__ | 当前类名称 |
__METHOD__ | 当前方法名称 |
__NAMESPACE__ | 当前命名空间 |
示例:
<?php
echo "当前文件:" . __FILE__;
echo "当前行号:" . __LINE__;
?>
9. 结论
✅ 常量不会被修改,适用于存储不可变的全局值(如数据库配置、API 密钥)。
✅ define() 更灵活,但 const 更适合类。
✅ 尽量使用 const 定义类常量,提高代码可读性和安全性。
更多详细内容请关注其他相关文章!