Skip to content

Commit 88674b4

Browse files
committed
add property info
1 parent f5402df commit 88674b4

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

img/zend_property_info.png

43.5 KB
Loading

zend_class.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,12 @@ typedef struct _zend_property_info {
175175

176176
#define ZEND_ACC_STATIC 0x01
177177
```
178-
* __offset__:这个值记录的就是上面说的通过数组保存的属性值的索引,也就是说属性值保存在一个数组中,然后将其在数组中的位置保存在offset中,另外需要说明的一点的是普通属性、静态属性这个值用法是不一样的,静态属性是类的范畴,与对象无关,所以其offset为default_static_members_table数组的下标:0,、1、2......,而普通属性归属于对象,每个对象有其各自的属性,所以这个offset记录的实际是各属性在object中偏移值(在后面《对象》一节我们再具体说明普通属性的存储方式),其值是:40、56、72......是按照zval的内存大小偏移的
178+
179+
![zend_property_info](img/zend_property_info.png)
180+
181+
* __offset__:这个值记录的就是上面说的通过数组保存的属性值的索引,也就是说属性值保存在一个数组中,然后将其在数组中的位置保存在offset中,另外需要说明的一点的是普通属性、静态属性这个值用法是不一样的,静态属性是类的范畴,与对象无关,所以其offset为default_static_members_table数组的下标:0,、1、2......,而普通属性归属于对象,每个对象有其各自的属性,所以这个offset记录的实际是各属性在object中偏移值(在后面《3.4.2 对象》一节我们再具体说明普通属性的存储方式),其值是:40、56、72......是按照zval的内存大小偏移的
179182
* __flags__:bit位,标识的是属性的信息,如public、private、protected及是否为静态属性
180183

181-
剩下几个值含义比较明了不再多言
184+
剩下几个值含义比较明了不再多说
182185

183186
#### 3.4.1.4 成员方法

0 commit comments

Comments
 (0)