关于类常量与类变量
// 处理状态:0=未处理,1=已处理,2=无需处理
const DEAL_STATUS_UNTREATED = 0; // 未处理
const DEAL_STATUS_PROCESSED = 1; // 已处理
const DEAL_STATUS_NEED_NOT = 2; // 无需处理
const DEAL_STATUS_MAP = [
self::DEAL_STATUS_UNTREATED => '未处理',
self::DEAL_STATUS_PROCESSED => '已处理',
self::DEAL_STATUS_NEED_NOT => '无需处理',
];
//public static $dealStatusMap = [
// self::DEAL_STATUS_UNTREATED => '未处理',
// self::DEAL_STATUS_PROCESSED => '已处理',
// self::DEAL_STATUS_NEED_NOT => '无需处理',
//];
以上DEAL_STATUS_MAP $dealStatusMap 都是处理状态的声明,目的都是为了统一公用处理状态,那么这两种形式有什么不同,该用哪一种。
类常量和静态变量都是存储在属于静态存储区,即区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束
区别在于类常量在于初始化后就不能修改,静态变量可以修改;
根据以上特性我们其实可以发现在大多数情况他们是一样的,比如以上情况,他们本质上没有太多的区别。但是针对一些情况,我们需要改变其声明的值并在声明周期内希望起作用,比如我们常用的单例模式。