【PHP7底层设计与源码分析】部分勘误

1、序

【PHP7底层设计与源码分析】部分勘误

zal 改为 zval
2、33页
从图3-1中我们看出,虽然char a只占了1字节,int b只占了4字节,但是long c并不是紧跟着b,而是根据8字节对齐后,c和b之间空了3字节
改为
从图3-1中我们看出,虽然char a只占了1字节,int b只占了4字节,但是b并不是紧跟着a,而是根据8字节对齐后,a和b之间空了3字节

3、图4-6 动态字符串赋值后$a 与 $b 关系图
更正为:

【PHP7底层设计与源码分析】部分勘误

4、图4-7 常量字符串赋值后$a 与 $b 关系图
更正为:

【PHP7底层设计与源码分析】部分勘误

5、图4-9 引用类型$a 与 $b 关系图
更正为:

【PHP7底层设计与源码分析】部分勘误

6、图4-10 copy on write过程示意图
更正为:

【PHP7底层设计与源码分析】部分勘误

7、图4-11 整形转成字符串
更正为:

【PHP7底层设计与源码分析】部分勘误

8、图4-13 opcode组装中字符串处理示意图
更正为:

【PHP7底层设计与源码分析】部分勘误

9、图9-4替换为下图:

【PHP7底层设计与源码分析】部分勘误

10、58页 图3-17下面的代码修改为: 
代码更正为
for($i = 0; $i <= 10002; $i++){
$a[$i] = array($i."_string");
$a[$i][] = &$a[$i];
unset($a[$i]);
}

11、图3-4 PHP5中_zval_struct的大小
更正为:


【PHP7底层设计与源码分析】部分勘误

12、图3-5 PHP5中_zval_struct实际大小
更正为:


【PHP7底层设计与源码分析】部分勘误

13、图3-6 PHP5中变量实际占用的内存大小
更正为:


【PHP7底层设计与源码分析】部分勘误

14、图3-16 gc_globals的结构
更正为:


【PHP7底层设计与源码分析】部分勘误
15、4.2.2节 示例2代码有一处错误,更改前为:
图片描述
https://segmentfault.com/img/...
【PHP7底层设计与源码分析】部分勘误

更改后为:
图片描述
https://segmentfault.com/img/...
【PHP7底层设计与源码分析】部分勘误

16、
120页和122页代码修改为:

for($i=0;$i<4;$i++){
   $arr[$i] = 1;//packed array
}

以下是读者赵禹反馈, 感谢赵禹!

17、第4章 字符串:页码83页 php_request_shutdown方法名写成了 php_request_shotdow。

18、第6章 面向对象 : 页码138页,6.1.3接口中接口类可以通过extends继承,写成了 extend继承。

以下是读者Rai4over反馈:
19、 第108页,示例代码为:

$arr[] = 'foo';

改为

$a[] = 'foo';

感谢读者Rai4over

相关推荐