1、 解释器部分,负责对输入代码的分析、翻译和执行;
2、 功能性部分,负责具体实现语言的各种功能(比如它的函数等等);
3、
接口部分,负责同 WEB 服务器的会话等功能。
Zend 包括了第一部分的全部和第二部分的局部,PHP 包括了第二部分的局部和第三部分的全部。他们
合起来称之为 PHP 包。Zend
构成了语言的核心,同时也包含了一些最基本的 PHP 预定义函数的实现 。
PHP 则包含了所有创造出语言本身各种显著特性的模块。
图 3-1 PHP 内部结构图
下面将要讨论 PHP 允许在哪里扩展以及如何扩展。
正如上图(图 3-1 PHP 内部结构图)所示,PHP 主要以三种方式来进行扩展:外部模块,内建模块各
Zend 引擎。下面我们将分别讨论这些方式:
外部模块
外部模块可以在脚本运行时使用 dl() 函数载入。这个函数从磁盘载入一个共享对象并将它的功能与调用
该函数的脚本进行绑定并使之生效。脚本终止后,这个外部模块将在内存中被丢弃。这种方式有利有弊,
如下表所示:
优点
缺点
外部模块不需要重新
对 PHP
进行编译。
共享对象在每次脚本调用时都需要对其进行加载,速度较慢。
PHP
“
”
通过 外包 方式
来让自身的体积保持
很小。
附加的外部模块文件会让磁盘变得比较散乱。
每个想使用该模块功能的脚本都必须使用 dl() 函数手动加载,