## 7.1 概述

扩展是PHP的重要组成部分，它是PHP提供给开发者用于扩展PHP语言功能的主要方式。开发者可以用C/C++定义自己的功能，通过扩展嵌入到PHP中，灵活的扩展能力使得PHP拥有了大量、丰富的第三方组件，这些扩展很好的补充了PHP的功能、特性，使得PHP在web开发中得以大展身手。ext目录下有一个standard扩展，这个扩展提供了大量被大家所熟知的PHP函数：sleep()、usleep()、htmlspecialchars()、md5()、strtoupper()、substr()、array_merge()等等。

C语言是PHP之母，作为世界上非常优秀的一门语言，自它诞生至今，C语言早就了大量优秀、知名的项目：Linux、Nginx、MySQL、PHP、Redis、Memcached等等，感谢里奇带给这个世界如此伟大的一份礼物。C语言的优秀也折射到PHP身上，但是PHP内核提供的功能终究有限，如果你发现PHP在某些方面已经满足不了你的需求了，那么不妨试试扩展。

常见的，扩展可以在以下几个方面有所作为：
* __介入PHP的编译、执行阶段：__ 可以介入PHP框架执行的那5个阶段，比如opcache，就是重定义了编译函数
* __提供内部函数：__ 可以定义内部函数扩充PHP的函数功能，比如array、date等操作
* __提供内部类__
* __实现RPC客户端：__  实现与外部服务的交互，比如redis、mysql等
* __提升执行性能：__ PHP是解析型语言，在性能方面远不及C语言，可以将耗cpu的操作以C语言代替
* ......

当然扩展也不是万能，它只允许我们在PHP提供的框架之上进行一些特定的处理，同时限于SAPI的差异，扩展也必须要考虑到不同SAPI的实现特点。

PHP中的扩展分为两类：PHP扩展、Zend扩展，对内核而言这两个分别称之为：模块(module)、扩展(extension)，本章主要介绍是PHP扩展，也就是模块。

