File tree Expand file tree Collapse file tree 2 files changed +13
-11
lines changed Expand file tree Collapse file tree 2 files changed +13
-11
lines changed Original file line number Diff line number Diff line change 1- ## 1.1 PHP简介   
1+ ## 1.1 PHP概述   
22
33### 1.1.1 PHP的历史发展  
44PHP是一种非常流行的高级脚本语言,尤其适合Web开发,快速、灵活和实用是PHP最重要的特点。PHP自1995年由Lerdorf创建以来,在全球得到了非常广泛的应用。
@@ -9,7 +9,7 @@ PHP是一种非常流行的高级脚本语言,尤其适合Web开发,快速
99
1010在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式发布,2004年7月13日则发布了PHP 5,PHP 5则使用了第二代的Zend Engine。PHP包含了许多新特色:完全实现面向对象、引入PDO、以及许多性能方面的改进。目前PHP5.X仍然是应用非常广泛的一个版本。
1111
12- ### 1.1.2 PHP特点   
12+ ### 1.1.2 特性   
1313PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法,丰富的语法支持、同时支持面向对象、面向过程,相比C、Java等语言具有语法简洁、使用灵活、开发效率高、容易学习等特点。
1414
1515*  开源免费:PHP社群有大量活跃的开发者贡献代码
@@ -19,17 +19,20 @@ PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法,丰
1919*  扩展性:允许用户使用C/C++扩展PHP
2020*  跨平台:可以在unix、windows、max os等系统上面使用PHP 
2121
22- ## 1.2 PHP7特性  
23- PHP7在内核方面做了很多优化,大大提高了PHP的性能,比如zval结构以及引用计数的改变节省了内存的使用。接下来我们简单看下PHP7都有哪些比较大的改进。
22+ ### 1.1.3 PHP的相关组成  
2423
24+ #### 1.1.3.1 SAPI  
25+ PHP本身可以理解为是一个库函数,提供语言的编译与执行服务,它有标准的输入、输出,而SAPI是PHP的接入层,它接收用户的请求,然后调用PHP内核提供的一些接口完成PHP脚本的执行,所以严格意义上讲SAPI并不算PHP内核的一部分。
2526
27+ PHP的角色就好比是leveldb,它实现了基本存储功能,但是没有网络处理模块,而我们基于leveldb实现的完整存储服务就好比是SAPI。
2628
27- ##  1.3 PHP内核的组成 
29+ PHP中常用的SAPI有cli、php-fpm,cli是命令行下执行PHP脚本的实现: ` bin/php script.php ` ,它是单进程的,处理模型比较简单,而php-fpm相对比较复杂,它实现了网络处理模块,用于与web服务器交互。 
2830
29- ### 1.1.1 SAPI   
30- PHP本身可以理解为是一个库函数,它有标准的输入、输出,而SAPI可以认为是PHP的一个使用者,它可以调用PHP内核提供的一些接口,所以严格意义上讲SAPI并不算PHP内核的一部分,最常用的SAPI就是cli、php-fpm这两个了,它们是再普通不过的C程序了,main函数通常也是定义在SAPI中,而PHP就是一个纯碎的解析器。 
31+ ####  1.1.3.2 Zend引擎   
32+ Zend是PHP语言实现的最为重要的部分,是PHP最基础、最核心的部分,它的源码在/Zend目录下,PHP代码从编译到执行都是由Zend完成的,后面章节绝大部分的源码分析都是针对Zend的。Zend整体由两个部分组成: 
3133
32- ### 1.1.3 Zend引擎  
33- Zend是PHP语言实现的核心,比如语法分析、代码执行等等都是Zend引擎实现的,这是PHP最基础、最核心的部分,我们后面绝大部分的源码分析都是针对Zend的。
34+ *  __ 编译器:__  负责将PHP代码编译为抽象语法树,然后进一步编译为可执行的opcodes,这个过程相当于GCC的工作,编译器是一个语言实现的基础
35+ *  __ 执行器:__  负责执行编译器输出的opcodes,也就是执行PHP脚本中编写的代码逻辑
36+ 
37+ #### 1.1.3.3 扩展  
3438
35- ## 1.4 PHP执行的几个阶段  
Original file line number Diff line number Diff line change 11## 7.6 函数  
2- 
32### 7.6.1 内部函数注册  
43通过扩展可以将C语言实现的函数提供给PHP脚本使用,如同大量PHP内置函数一样,这些函数统称为内部函数(internal function),与PHP脚本中定义的用户函数不同,它们无需经历用户函数的编译过程,同时执行时也不像用户函数那样每一个指令都调用一次C语言编写的handler函数,因此,内部函数的执行效率更高。除了性能上的优势,内部函数还可以拥有更高的控制权限,可发挥的作用也更大,能够完成很多用户函数无法实现的功能。
54
                         You can’t perform that action at this time. 
           
                  
0 commit comments