爱程序网

PHP内核探索之变量(1)Zval

来源: 阅读:

作为数据的容器,我们常常需要跟变量打交道,不管这个变量是数字、数组、字符串、对象还是其他,因而可以说变量是构成语言的不可或缺的基础。本文是PHP内核探索之变量的第一篇,主要介绍zval的基本知识,包括如下几个方面的内容:

  1. Zval的基本结构
  2. 查看zval的方法:debug_zval_dump和xdebug
  3. Zval的原理,COW等

由于写作仓促,难免会有错误,欢迎指出。

一、Zval的基本结构

Zval是PHP中最重要的数据结构之一(另一个比较重要的数据结构是hash table),它包含了PHP中的变量值和类型的相关信息。它是一个struct,基本结构为:

struct _zval_struct {    zvalue_value value;     /* value */    zend_uint refcount__gc;  /* variable ref count */    zend_uchar type;          /* active type */    zend_uchar is_ref__gc;    /* if it is a ref variable */};typedef struct _zval_struct zval;

相关文章列表: