原文链接:http://www.orlion.ga/1001/
当.php文件被编译为opcode后,下一步的执行并非是把opcode编译为机器码而是类似于如下的方式执行:
while (TRUE) { int opcode = *program_counter; switch (opcode) { case ZEND_ADD: // execute add ... program_counter++; // next opcode break; case ZEND_SUB: // execute sub ... program_counter++; // next opcode break; // ... }} 可以理解为opcode驱使c执行。
具体参见知乎上的这个问题:https://www.zhihu.com/question/41249519