0
点赞
收藏
分享

微信扫一扫

关于php类常量与静态变量

关于类常量与类变量

// 处理状态: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 都是处理状态的声明,目的都是为了统一公用处理状态,那么这两种形式有什么不同,该用哪一种。
类常量和静态变量都是存储在属于静态存储区,即区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束
区别在于类常量在于初始化后就不能修改,静态变量可以修改;

根据以上特性我们其实可以发现在大多数情况他们是一样的,比如以上情况,他们本质上没有太多的区别。但是针对一些情况,我们需要改变其声明的值并在声明周期内希望起作用,比如我们常用的单例模式。

举报

相关推荐

0 条评论