您的位置:首页 > 编程语言 > PHP开发

菜鸟分析php源码 第二章

2011-11-14 18:06 288 查看
入口文件

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,输出结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: