background image

1、 解释器部分,负责对输入代码的分析、翻译和执行;
2、 功能性部分,负责具体实现语言的各种功能(比如它的函数等等);
3、 

 

接口部分,负责同 WEB 服务器的会话等功能。

Zend 包括了第一部分的全部和第二部分的局部,PHP 包括了第二部分的局部和第三部分的全部。他们

 

合起来称之为 PHP 包。Zend 

 

构成了语言的核心,同时也包含了一些最基本的 PHP 预定义函数的实现 。

PHP 则包含了所有创造出语言本身各种显著特性的模块。
 

 

图 3-1   PHP 内部结构图

下面将要讨论 PHP 允许在哪里扩展以及如何扩展。

( 四 ) 可 扩 展 性

正如上图(图 3-1 PHP 内部结构图)所示,PHP 主要以三种方式来进行扩展:外部模块,内建模块各 
Zend 引擎。下面我们将分别讨论这些方式:

外部模块

 

外部模块可以在脚本运行时使用 dl() 函数载入。这个函数从磁盘载入一个共享对象并将它的功能与调用
该函数的脚本进行绑定并使之生效。脚本终止后,这个外部模块将在内存中被丢弃。这种方式有利有弊,
如下表所示:

优点

缺点

外部模块不需要重新

 

对 PHP 

 

进行编译。

 

共享对象在每次脚本调用时都需要对其进行加载,速度较慢。

PHP

通过 外包 方式

来让自身的体积保持

很小。

 

附加的外部模块文件会让磁盘变得比较散乱。

 

 

每个想使用该模块功能的脚本都必须使用 dl() 函数手动加载,