要执行一个web脚本语言需要三个部分:
1·分析输入的代码,并翻译和执行
2·功能部分,执行语言的功能要求
3·与web服务器对话部分
zend执行第一部分和第二部分的一小部,php执行其余部分。zend是语言的核心,根据一些预先定义的函数执行一些基本的功能。php包括所有的外部功能模块。
php的扩展可包括三种方式:1·外部模块扩展;2·在编译php时将模块和php一起编译;3·修改zend引擎。
这三种方式各有优劣。一般选择第一种(如常用的gd库和php5中使用的mysql库),好处是不需要重新编译php,坏处是动态模块的加载需要额外时间。
首先看三个头文件:
1·在main下面的php.h文件,包含了许多系统的.h文件,定义了很多常量、函数和宏,根据系统编译环境判断一些函数是否存在,如果不存在则编译php代码中编写的这些函数,通过宏定义统一了在不同环境下实现相同功能但函数名不同的函数。
2·在zend下的zend.h函数定义了一些数据结构,也包含了一些数据结构的.h文件,如hash和list。
3·在zend下的zend_API.h文件将一些函数定义为宏,这些函数主要用于对php代码的编译。