主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

PHP 常量

常量(Constant)是 PHP 中用于存储固定值的标识符,一旦定义常量的值将始终保持不变,既不能重新赋值,也不能取消定义。

在 PHP 中,定义常量主要有两种方式:使用define()函数或const关键字。


PHP 常量的核心特性

✅ PHP 常量具有以下重要特性,使其成为存储固定值的理想选择:

1. 不可变性(Immutability)

  • 常量一旦定义后,其值永久不可更改
  • 无法通过赋值语句重新定义(如CONSTANT = newValue会报错)
  • 不能使用unset()取消定义

2. 全局作用域(Global Scope)

  • 常量默认具有全局可见性
  • 在函数/方法内部无需使用global关键字即可直接访问
  • 不受类/函数作用域限制(类常量除外)

3. 命名规则

  • 命名时不需要$符号前缀
  • 传统约定使用全大写字母加下划线(如MAX_SIZE
  • 可以包含字母、数字和下划线,但必须以字母或下划线开头

4. 数据类型支持

  • 支持标量数据类型:整型(integer)、浮点型(float)、字符串(string)、布尔型(boolean)
  • 支持复合类型(PHP 7+):数组(array)、对象(object,通过序列化)

5. 定义与访问

  • 使用define()const定义
  • 通过常量名直接访问(如echo MAX_SIZE;
  • 可用constant()函数动态获取值(如constant('MAX_SIZE')

6. 存在性检查

  • 通过 defined() 函数检测是否已定义:
if (!defined('CONSTANT_NAME')) {
    define('CONSTANT_NAME', 'value');
}

7. 性能优势

  • 相比变量,常量具有更快的访问速度
  • 编译时优化的常量(如const定义)性能更优

PHP 使用 define() 函数定义常量

define() 函数语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

该函数有三个参数:

  • name:必选参数,常量名称,即标志符。
  • value:必选参数,常量的值。
  • case_insensitive:可选参数,大小写敏感设置。默认 false(大小写敏感)。PHP7.3 后全是大小写敏感,即这个参数没意义了。

✅ 以下实例我们创建一个区分大小写的常量(PHP7.3 版本之后不建议使用),常量值为 "欢迎访问 Kaicz.com":

// 区分大小写的常量名
define("GREETING", "欢迎访问 Kaicz.com");
echo GREETING;    // 输出 "欢迎访问 Kaicz.com"
echo '
'; echo greeting; // 输出 "greeting",但是有警告信息,表示该常量未定义

✅ 以下实例我们创建一个 不区分大小写的常量,常量值为 "欢迎访问 Kaicz.com":

// 不区分大小写的常量名
define("GREETING", "欢迎访问 Kaicz.com", true);
echo greeting;  // 输出 "欢迎访问 Kaicz.com"

PHP 使用 const 关键字

const() 关键字定义常量:

const CONSTANT_NAME = "value";

✅ 以下是一个使用const关键字定义常量的实例:

const SITE_URL = "https://www.kaicz.com";
echo SITE_URL; // 输出 "https://www.kaicz.com"

PHP 预定义常量

PHP 提供了丰富地预定义常量,这些常量在脚本运行时自动可用,常见地预定义常量有:

  • PHP_VERSION:PHP 版本号(如 "8.1.5")
  • PHP_MAJOR_VERSION:主版本号(如 8)
  • PHP_OS:操作系统类型(如 "Linux")
  • PHP_OS_FAMILY:操作系统家族(如 "Windows"、"Linux")
  • PHP_SAPI:服务器API类型(如 "cli"、"apache2handler")
  • PHP_EOL:系统换行符(Windows为"\r\n",Unix为"\n")
  • PHP_INT_SIZE:整数字节数(如 8)
  • PHP_FLOAT_DIG:浮点数精度位数
echo PHP_VERSION;     // 输出 PHP 版本,例如 "7.4.1"
echo PHP_OS;        // 输出操作系统,例如 "Linux"
echo PHP_INT_MAX;       // 输出最大的整数值,例如 "9223372036854775807"

数组常量(PHP 7 及以上版本)

PHP 从 7.0 版本开始支持将数组定义为常量,这为配置管理和固定数据集合提供了更强大的支持。

define("FRUITS", [
    "Apple",
    "Banana",
    "Orange"
]);

echo FRUITS[0]; // 输出 "Apple"

或者使用const

const COLORS = [
    "Red",
    "Green",
    "Blue"
];

echo COLORS[1]; // 输出 "Green"


评论区 0
发表评论
教程介绍
PHP 通用开源服务器端脚本语言,特别适用于 Web 开发,能够嵌入 HTML 中使用。
20 章节
33 阅读
0 评论