PHP的数组底层实现
PHP的数组底层是怎么实现的?
数组本质上是一个哈希表(HashTable,定义在$PHP_SOURCE_ROOT\Zend\zend_hash.h)。具体实现可以查看
$PHP_SOURCE_ROOT\ext\standard\array.c 和 $PHP_SOURCE_ROOT\Zend\ZendAPI.c 。
PHP之所以发现这么迅速,有很大原因是因为数组数据非常好处理,而且它可以存储其他类型的数据
数组的值存储在zvalue_value.ht字段中,ht是一个HashTable的数据
有关于HashTable的知识请移步 >> HASH表和变量
我们来详细说一下数组
PHP里面所有的数据都离不开zval和HashTable,
一个PHP很简单的数组初始化,
在C语言里面实现的却没有那么简单.
经过简单分析,找到数组的初始化的opcode
在Zend/zend_vm_execute.h文件中
1
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
copyright © 2008-2019 入门客AI创业平台 版权所有 备案号:湘ICP备2023012770号
|