类常量用于定义类中不变的值,适合存储配置、状态码等;使用const关键字定义,名称大写加下划线分隔;通过类名::常量名访问,无需实例化;应用于状态管理、配置参数、错误码、权限角色等场景;具有编译时确定、不可重写、默认public等特性;可结合静态方法实现校验逻辑,提升代码可读性和维护性。
PHP类常量用于定义在类中不会改变的值,适合存储配置信息、状态码、固定规则等。它们在类加载时就确定,无需实例化对象即可访问,提高了代码的可读性和维护性。
使用 const 关键字定义类常量,名称通常大写,多个词以下划线分隔:
class Status {
const PENDING = 'pending';
const APPROVED = 'approved';
const REJECTED = 'rejected';
}
通过类名和作用域解析操作符(::)访问:
echo Status::PENDING; // 输出: pending
类常量广泛应用于以下几种情况:
class UserRole {
const ADMIN = 'admin';
const EDITOR = 'editor';
const GUEST = 'guest';
}
if ($user->role === UserRole::ADMIN) {
// 执行管理员操作
}
理解其行为有助于正确使用:
常配合静态方法做校验或转换:
class OrderStatus {
const CREATED = 1;
const PAID = 2;
const SHIPPED = 3;
public static function isValid($status) {
return in_array($status, [self::CREATED, self::PAID, self::SHIPPED]);
}
}
// 使用
if (OrderStatus::isValid($status)) {
// 处理有效状态
}
基本上就这些。合理使用类常量能让代码更整洁、减少魔数、提升协作效率。不复杂但容易忽略细节,比如命名规范和不可变性,掌握好对项目结构帮助很大。