Skip to content

Commit 25ff9a0

Browse files
authored
Merge pull request #109 from chenishr/master
阅读过程中发现的可能错别字的地方
2 parents 394f9c8 + c74ba17 commit 25ff9a0

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

book/chapt05/05-00-class-and-oop.markdown

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
Javascript中的类(Function)也具有类定义的特性。这也印证了面向对象只是一种编程范式。
1414
1. 对象。对象是类的实例。对象是具体的。
1515
1. 方法。方法是类定义对象可以做的事情。
16-
1. 继承性。继承是类的具体化,子类是比具备更多特性和行为的类。面向对象是对现实世界的一个抽象。
16+
1. 继承性。继承是类的具体化,子类是比父类具备更多特性和行为的类。面向对象是对现实世界的一个抽象。
1717
在很多时候的关系并不一定是继承关系。能在一定程序上实现代码的重用。
1818
1. 封装性、抽象性。封装性能实现的复杂性隐藏,减少出错的可能。
1919

book/chapt05/05-01-class-struct.markdown

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ function_name=iMethod | type=2 | fn_flags=258</li>
286286
zend_do_end_class_declaration函数用来处理接口和类的中间代码
287287
这两个函数在Zend/zend_complie.c文件中可以找到其实现。
288288

289-
在zend_do_begin_class_declaration中,首先会对传入的类名作一个转化,统一成小写,这也是为什么类名不区分大小的原因,如下代码
289+
在zend_do_begin_class_declaration中,首先会对传入的类名作一个转化,统一成小写,这也是为什么类名不区分大小写的原因,如下代码
290290

291291
[php]
292292
<?php

book/chapt05/05-05-class-magic-methods-latebinding.markdown

+8-8
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ PHP中有一些特殊的函数和方法,这些函数和方法相比普通方
2020
* 由ZendVM自动分情境进行调用;
2121
* 不是必须的,按需定义,自动调用
2222

23-
从以上三个方面可以发现,关于魔术变量的关键理解,主要集中在两个方面:**一,定义在哪里; 二,如何判断其存在并进行调用。**
23+
从以上三个方面可以发现,关于魔术方法的关键理解,主要集中在两个方面:**一,定义在哪里; 二,如何判断其存在并进行调用。**
2424

25-
首先,魔术变量的存储在**_zend_class_entry**中的代码如下:(完整的**_zend_class_entry**代码见本章第一节)
25+
首先,魔术方法的存储在**_zend_class_entry**中的代码如下:(完整的**_zend_class_entry**代码见本章第一节)
2626

2727
[c]
2828
struct _zend_class_entry {
@@ -47,7 +47,7 @@ PHP中有一些特殊的函数和方法,这些函数和方法相比普通方
4747
...
4848
}
4949

50-
这段代码明确的在对象内部定义了不同的指针来保存各种魔术变量
50+
这段代码明确的在对象内部定义了不同的指针来保存各种魔术方法
5151
关于Zend VM对魔术方法的调用机制,由于每种方法的调用情境不同,笔者在这里也分开进行分析。
5252

5353

@@ -96,11 +96,11 @@ Zend VM在初始化对象的时候,使用了new关键字,对其OPCODE进行
9696
在判断了**__construct**魔术变量存在之后,ZEND_NEW_SPEC_HANDLER中对当前EX(called_scope)进行了重新赋值,
9797
使ZEND_VM_NEXT_OPCODE();将opline指针指向__construct方法的op_array,开始执行__construct魔术方法
9898

99-
[c]
100-
EX(object) = object_zval;
101-
EX(fbc) = constructor;
102-
EX(called_scope) = EX_T(opline->op1.u.var).class_entry;
103-
ZEND_VM_NEXT_OPCODE();
99+
[c]
100+
EX(object) = object_zval;
101+
EX(fbc) = constructor;
102+
EX(called_scope) = EX_T(opline->op1.u.var).class_entry;
103+
ZEND_VM_NEXT_OPCODE();
104104

105105

106106

0 commit comments

Comments
 (0)