Skip to content

Commit

Permalink
Merge pull request #31 from smalleyes/master
Browse files Browse the repository at this point in the history
文章校对
  • Loading branch information
pangudashu committed Apr 27, 2018
2 parents 4f585e0 + 217ea91 commit 40645cf
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion 2/static_var.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ if (by_ref) {
* __ZEND_FETCH_W:__ 这条opcode对应的操作是创建一个IS_INDIRECT类型的zval,指向static_variables中对应静态变量的zval
* __ZEND_ASSIGN_REF:__ 它的操作是引用赋值,即将一个引用赋值给CV变量

通过上面两条opcode可以确定静态变量的读写过程:首先根据变量名在static_variables中取出对应的zval,然后将它修改为引用类型并赋值给局部变量,也就是说`static $count = 4;`包含了两个操作,严格的将`$count`并不是真正的静态变量,它只是一个指向静态变量的局部变量,执行时实际操作是:`$count = & static_variables["count"];`。上面例子$count与static_variables["count"]间的关系如图所示。
通过上面两条opcode可以确定静态变量的读写过程:首先根据变量名在static_variables中取出对应的zval,然后将它修改为引用类型并赋值给局部变量,也就是说`static $count = 4;`包含了两个操作,严格的说`$count`并不是真正的静态变量,它只是一个指向静态变量的局部变量,执行时实际操作是:`$count = & static_variables["count"];`。上面例子$count与static_variables["count"]间的关系如图所示。

![](../img/zend_static_ref.png)

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

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

PHP中我们这样定义一个类:
```php
Expand Down

0 comments on commit 40645cf

Please sign in to comment.