php-5.6.26源代码 - opcode执行
生活随笔
收集整理的這篇文章主要介紹了
php-5.6.26源代码 - opcode执行
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
文件 php-5.6.26/Zend/zend_vm_execute.h
ZEND_API void execute_ex(zend_execute_data *execute_data TSRMLS_DC) {DCL_OPLINEzend_bool original_in_execution;original_in_execution = EG(in_execution); // 保存現場EG(in_execution) = 1; // 正在執行中 if (0) { zend_vm_enter:execute_data = i_create_execute_data_from_op_array(EG(active_op_array), 1 TSRMLS_CC);}LOAD_REGS();LOAD_OPLINE();while (1) {int ret; #ifdef ZEND_WIN32if (EG(timed_out)) {zend_timeout(0);} #endifif ((ret = OPLINE->handler(execute_data TSRMLS_CC)) > 0) { // execute_data.opline->handler(execute_data TSRMLS_CC) // 操作碼對應的處理函數switch (ret) {case 1:EG(in_execution) = original_in_execution; // 還原現場return;case 2:goto zend_vm_enter; // 進入虛擬機break;case 3:execute_data = EG(current_execute_data); // 當前正在執行的數據 break;default:break;}}}zend_error_noreturn(E_ERROR, "Arrived at end of main loop which shouldn't happen"); }ZEND_API void zend_execute(zend_op_array *op_array TSRMLS_DC) {if (EG(exception)) {return;} zend_execute_ex(i_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC) TSRMLS_CC); // zend_execute_ex = execute_ex }?
轉載于:https://www.cnblogs.com/xiaoyaogege/p/8628787.html
總結
以上是生活随笔為你收集整理的php-5.6.26源代码 - opcode执行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51Nod1502 苹果曼和纸
- 下一篇: ASP.NET Core Web 支付功