第 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 最基本和最核心的变量实现会有清晰的认识。