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

LNMPRG源码研究

1、序

clipboard.png

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 关系图
更正为:

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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

clipboard.png

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的大小
更正为:


clipboard.png

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


clipboard.png

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


clipboard.png

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


clipboard.png
15、4.2.2节 示例2代码有一处错误,更改前为:
图片描述
https://segmentfault.com/img/...
clipboard.png

更改后为:
图片描述
https://segmentfault.com/img/...
clipboard.png

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

阅读 4.7k

一群热爱代码的人 研究Nginx PHP Redis Memcache Beanstalk 等源码 以及一群热爱前端的人

7.1k 声望
12.7k 粉丝
0 条评论

一群热爱代码的人 研究Nginx PHP Redis Memcache Beanstalk 等源码 以及一群热爱前端的人

7.1k 声望
12.7k 粉丝
文章目录
宣传栏