
1. Concepto
Zval es otra estructura de datos muy importante en Zend, utilizada para identificar e implementar variables PHP. Contiene información sobre valores y tipos de variables en PHP.
2. Composición
tipo: especifica el tipo de variable (entero, cadena, matriz, etc.)
refcount&is_ref: se utiliza para implementar el recuento de referencias (introducción detallada más adelante)
valor: parte central, que almacena los datos reales de la variable
3. Ejemplos
estructura _zval_struct {
unión {
zend_long lval; /* valor largo */
doble valor; /* valor doble */
zend_refcounted *contado;
zend_string *cadena;
zend_array *arr;
objeto_zend *obj;
zend_resource *res;
zend_referencia *ref;
zend_ast_ref *ast;
zval *zv;
vacío *ptr;
zend_class_entry *ce;
función_zend *func;
estructura {
uint32_t w1;
uint32_t w2;
} ww;
} valor;
unión {
estructura {
ZEND_ENDIAN_LOHI_4(
tipo zend_uchar, /* tipo activo */
zend_uchar type_flags,
zend_uchar const_flags,
zend_uchar reservado) /* información de llamada para EX(This) */
}v;
uint32_t tipo_info;
}u1;
unión {
uint32_t var_flags;
uint32_t next; /* cadena de colisión de hash */
uint32_t cache_slot /* ranura de caché literal */
uint32_t lineno; /* número de línea (para nodos ast) */
uint32_t num_args; /* número de argumentos para EX(This) */
uint32_t fe_pos; /* posición para cada */
uint32_t fe_iter_idx; /* índice del iterador foreach */
}u2;
};Lo anterior es la introducción a Zval en PHP, espero que sea útil para todos.