标签:val tle mes 计算 图片 char ffffff ash 字符串
PHP 内核之旅系列
zend_string
1 typedef struct _zend_string zend_string; //定义 zend_string变量 2 struct _zend_string { //_zend_string结构体 3 zend_refcounted_h gc; 4 zend_ulong h; /* hash value */ 5 size_t len; 6 char val[1]; 7 };
变量 | 描述 | |
1 |
gc
|
变量的引用计数信息,内存管理会用到 |
2 |
h |
harh code, 字符串通过Times33算法计算得到的 |
3 |
len
|
字符串的长度 |
4 |
val[1] |
字符串的内容 |
注意:
1. zend_string = 引用计数 + 字符串hash code + 字符串长度 + 字符串内容。
2. 字符串val是一个可变数组,val[1]表示默认存放‘\0‘ 字符串结束符。
3. val[0]存放空字符串。当字符串不为空时,val[0 ~ len]存放的是字符串内容。val[len+1] = ‘0\‘
比如‘test‘字符串是这样存放的:
val[0] = ‘t‘
val[1] = ‘e‘
val[2] = ‘s‘
val[3] = ‘t‘
val[4] = ‘\0‘ 字符串结束符
标签:val tle mes 计算 图片 char ffffff ash 字符串
原文地址:https://www.cnblogs.com/jackson0714/p/php4.html