File tree Expand file tree Collapse file tree 4 files changed +9
-6
lines changed Expand file tree Collapse file tree 4 files changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -87,7 +87,7 @@ if (by_ref) {
8787* __ ZEND_FETCH_W:__ 这条opcode对应的操作是创建一个IS_INDIRECT类型的zval,指向static_variables中对应静态变量的zval
8888* __ ZEND_ASSIGN_REF:__ 它的操作是引用赋值,即将一个引用赋值给CV变量
8989
90- 通过上面两条opcode可以确定静态变量的读写过程:首先根据变量名在static_variables中取出对应的zval,然后将它修改为引用类型并赋值给局部变量,也就是说` static $count = 4; ` 包含了两个操作,严格的将 ` $count ` 并不是真正的静态变量,它只是一个指向静态变量的局部变量,执行时实际操作是:` $count = & static_variables["count"]; ` 。上面例子$count与static_variables[ "count"] 间的关系如图所示。
90+ 通过上面两条opcode可以确定静态变量的读写过程:首先根据变量名在static_variables中取出对应的zval,然后将它修改为引用类型并赋值给局部变量,也就是说` static $count = 4; ` 包含了两个操作,严格的说 ` $count ` 并不是真正的静态变量,它只是一个指向静态变量的局部变量,执行时实际操作是:` $count = & static_variables["count"]; ` 。上面例子$count与static_variables[ "count"] 间的关系如图所示。
9191
9292![ ] ( ../img/zend_static_ref.png )
9393
Original file line number Diff line number Diff line change @@ -278,7 +278,7 @@ $b[] = 3;
278278
279279![ zval_sep] ( ../img/zval_sep.png )
280280
281- 不是所有类型都可以copy的,比如对象、资源,实时上只有string 、array两种支持,与引用计数相同,也是通过` zval.u1.type_flag ` 标识value是否可复制的:
281+ 不是所有类型都可以copy的,比如对象、资源,事实上只有string 、array两种支持,与引用计数相同,也是通过` zval.u1.type_flag ` 标识value是否可复制的:
282282``` c
283283#define IS_TYPE_COPYABLE (1<<4)
284284```
Original file line number Diff line number Diff line change 11### 3.4.1 类
22类是现实世界或思维世界中的实体在计算机中的反映,它将某些具有关联关系的数据以及这些数据上的操作封装在一起。在面向对象中类是对象的抽象,对象是类的具体实例。
33
4- 在PHP中类编译阶段的产物 ,而对象是运行时产生的,它们归属于不同阶段。
4+ 在PHP中类是编译阶段的产物 ,而对象是运行时产生的,它们归属于不同阶段。
55
66PHP中我们这样定义一个类:
77``` php
Original file line number Diff line number Diff line change 115115 * [ 8.3.2 use导入] ( 8/namespace.md )
116116 * [ 8.3.3 动态用法] ( 8/namespace.md )
117117
118- ## 附录
119- * [ 附录1:break/continue按标签中断语法实现] ( try/break.md )
120- * 附录2:defer推迟函数调用语法的实现
118+ ## 实现PHP新特性
119+ * [ 1、break/continue按标签中断语法实现] ( try/break.md )
120+ * 2、defer语法
121+ * 3、协程
122+ * 3.1 协程的原理
123+ * 3.2 上下文切换
121124
You can’t perform that action at this time.
0 commit comments