shadow_chang 2014-07-31 03:37
浏览 762

关于php zend 处理 变量的存储 疑惑 ,请求大神解答

<?php
$foo = "bar";

?>

这一条赋值语句 在zend 引擎 中是如何 解释和分配存储的?

我看了一下zend 对变量存储的处理。

struct zval_struct {
zvalue_value value; /* 变量的值 */
zend_uint refcount
_gc; /*value 值 通过指针关联的符号表中变量名称的个数。*/
zend_uchar type; /* 变量当前的数据类型 /
zend_uchar is_ref__gc; /
*/
};
typedef struct _zval_struct zval;

《php扩展和内核应用》中又讲到。

{
zval *fooval;

MAKE_STD_ZVAL(fooval);
ZVAL_STRING(fooval, "xxxx", 1);
ZEND_SET_SYMBOL( EG(active_symbol_table) ,  "foo" , fooval);

}
首先,我们声明一个zval指针,并申请一块内存。然后通过ZVAL_STRING宏将值设置为‘bar’,最后一行的作用就是将这个zval加入到当前的符号表里去,并将其label定义成foo,这样用户就可以在代码里通过$foo来使用它了。

在这里?我不理解 最后一段话的 将这个zval 假如到当前的符号表中。。。。。$foo 来使用它了。。

请大神指教一下?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 lammps拉伸应力应变曲线分析
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
    • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
    • ¥30 python代码,帮调试
    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python