【PHP笔记】 zend常用数据结构及宏

1、zend_execute_data:opcode执行期间非常重要的一个结构,记录着当前执行的zend_op、返回值、所属函数/对象指针、符号表等

struct _zend_execute_data {
    const zend_op       *opline;           /* executed opline 指向第一条opcode */
    zend_execute_data   *call;             /* current call                   */
    zval                *return_value;
    zend_function       *func;             /* executed op_array              */
    zval                 This;
#if ZEND_EX_USE_RUN_TIME_CACHE
    void               **run_time_cache;
#endif
#if ZEND_EX_USE_LITERALS
    zval                *literals;
#endif
    zend_class_entry    *called_scope;
    zend_execute_data   *prev_execute_data;
    zend_array          *symbol_table;
};

2、zend_op:zend指令

//zend.compile.h
struct _zend_op {
    const void *handler;  //该指令调用的处理函数
    znode_op op1; //操作数1
    znode_op op2; //操作数2
    znode_op result; 
    uint32_t extended_value;
    uint32_t lineno;
    zend_uchar opcode; //opcode指令编号
    zend_uchar op1_type; //操作数1类型
    zend_uchar op2_type; 
    zend_uchar result_type;
};



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值