首页 话题 小组 问答 好文 用户 我的社区 域名交易

[分享]php Zend引擎如何执行代码

发布于 2025-03-21 10:56:21
0
49

图片alt

1、对Scanning进行词法分析,将PHP代码转换为语言片段。

2、解析Parsing,将Tokens转换成简单而有意义的表达式。

3、将Compilation编译成Opcode。

4、执行Execution,按顺序执行Opcode。

每次一条,实现PHP代码表达的功能。

实例

struct _zend_op {
    const void *handler; //对应执行的C语言function,即每条opcode都有一个C function处理
    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; //操作数2类型
    zend_uchar result_type; //返回值类型
};
评论
站长交流