PHP 7底层设计与源码实现
上QQ阅读APP看书,第一时间看更新

第3章
基本变量

本章将详细研究PHP 7中基本变量的实现,PHP中的变量是弱类型的,使用者在使用时无需对变量的类型进行声明,那这是怎么做到的呢?同时,PHP 7中zval的实现相对于PHP 5有了很大的改动,而这些改动为PHP 7带来了巨大的性能提升。那么PHP 7中zval是如何设计的呢?其大小有什么样的变化?能否直接在栈上申请呢?带着这些问题,本章会逐一分析,揭开PHP 7中zval的神秘面纱。

3.1节对基本知识做了一些铺垫,对数据类型、PHP 7的基本变量类型以及堆和栈的一些基本知识进行讲解,为更好地理解PHP 7基本变量的设计与实现打下基础。3.2节对PHP 5中zval实现做了一些简单的介绍,进而以对比方式展开了对PHP 7中zval实现细节的阐述,分析PHP 7中zval有了哪些改变,这些改变带来了什么样的好处。3.3节讨论了PHP 7中变量的作用域,包括全局变量、局部变量、中间变量、静态变量以及常量的实现。3.4节讨论了变量设计中对垃圾回收的支持。相信读者读完这一章,对PHP 7最基本和最核心的变量实现会有清晰的认识。