菜鸟分析php源码 第二章

入口文件

         1       sapi/cli/php_cli.c

                  619          main入口文件

                  784          调用php_cli_startup=> 调用php_module_startup

         2       main/main.c

                   1643         php_module_startup

                   1710         zend_startup(&zuf,NULL, 1);

         3       Zend/zend.c

                   566            zend_startup

                            start_memory_manager                   //完成了内存管理

                            zend_startup_strtod

                            zend_startup_extensions_mechanism   //扩展相关

                            GLOBAL_FUNCTION_TABLE

                            GLOBAL_CLASS_TABLE

                            GLOBAL_AUTO_GLOBALS_TABLE           

                            zend_hash_init_ex()                  //一些全局hash符号表的申请和初始化

                            zend_startup_constants                   //初始化一些常量相关的东东

                            zend_ini_startup                        //ini初始化

                            //这块的注释根据名字来的,没有细分析,之后会较细分析,这章主要介绍个轮廓

         4       回到main/main.c

                   这里还是一些初始化的工作,EG、SG、PG、一些常量等等

                   php_startup_auto_globals      对系统global量的初始化,_GET、_POST等,暂时还在理解中

         5       回到sapi/cli/php_cli.c

                   1105         zend_execute_scripts(ZEND_REQUIRETSRMLS_CC, NULL, 1, prepend_file_p);           //程序编译执行入口

         6       main/main.c

                   1953         php_execute_script

                   2036         zend_execute_scripts

         7       Zend/zend.c

                   1111         zend_execute_scripts

                  1126      EG(active_op_array) =zend_compile_file(file_handle, type TSRMLS_CC);    //编译生成opcode之处

                   1134    zend_execute(EG(active_op_array)TSRMLS_CC);          //参数为op_array,进出代码能看到while(1)循环解释执行opcode,输出结果

 

                  


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值