ZVAL——PHP源码分析

Posted 冯煜博

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZVAL——PHP源码分析相关的知识,希望对你有一定的参考价值。

  基于 php 5.6.20

 

  ZVAL——php变量实现的基础

  _zval_struct 结构体的定义位于 Zend/zend.h 322 行

typedef union _zvalue_value {
    long lval;                  /* long value */
    double dval;                /* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;              /* hash table value */
    zend_object_value obj;
    zend_ast *ast;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;     /* value */
    zend_uint refcount__gc;
    zend_uchar type;    /* active type */
    zend_uchar is_ref__gc;
};

 

  其中,zvalue_value 用来存储实际的值、refcont__gc 应用于引用计数垃圾回收、type 表示实际的类型、is_ref__gc 

 

以上是关于ZVAL——PHP源码分析的主要内容,如果未能解决你的问题,请参考以下文章

php7 zval

php扩展分析

PHP中变量底层分析

php内置函数分析之array_column()

php底层--2

PHP7做了哪些优化