Skip to content

Commit dfae738

Browse files
authored
Merge pull request #1 from pangudashu/master
keep updated
2 parents 6c469f1 + 124d6bc commit dfae738

File tree

4 files changed

+9
-6
lines changed

4 files changed

+9
-6
lines changed

2/static_var.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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

2/zval.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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
```

3/zend_class.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
### 3.4.1 类
22
类是现实世界或思维世界中的实体在计算机中的反映,它将某些具有关联关系的数据以及这些数据上的操作封装在一起。在面向对象中类是对象的抽象,对象是类的具体实例。
33

4-
在PHP中类编译阶段的产物,而对象是运行时产生的,它们归属于不同阶段。
4+
在PHP中类是编译阶段的产物,而对象是运行时产生的,它们归属于不同阶段。
55

66
PHP中我们这样定义一个类:
77
```php

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@
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

0 commit comments

Comments
 (0)