php 静态 常量,关于PHP常量、静态使用以及存储_一点PHP博客

一点PHP分享关于在PHP语言中使用常量和静态变量/属性,众所周知在PHP中定义常量可以使用define和const两种方式,它两者最大的区别就是后者会在代码运行之前就会定义好常量,而前者只有在代码运行时才定义常量,至于静态变量使用static关键字定义。

在实际开发过程中,今天有人问我一个关于static的问题,顺便就写个小短文分享给大家。首先看下面这段代码:

77b0d6f72250115d0b60bd2dd3b70f42.gif

搞不清楚为什么可以static::AA这种写法,当然这里换成self也是可以的,我本人比较喜欢使用self。在class中明明申请的是一个常量AA又不是静态属性,凭什么可以使用static获取。关于这个问题需要追溯到php内存管理中来看,在内存管理中有一块区域叫做静态常量区,而静态常量区中放的数据都是全局加载数据,这些数据其中就包括静态值、常量值。

而我们通常获取静态属性时使用static::属性名获取,那么常量和静态属性是存在一个地方,自然也可以通过这种方式获取,博主本人也说不准这算不算bug,总之能行的通。对PHP内存存储有兴趣,可以看PHP内存中的分配这篇文章。

一点php,一点技术分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值