原文链接:
当.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执行。
具体参见知乎上的这个问题: