PHP代码运行原理
PHP是跑在服务端的脚本,浏览器只负责发请求、收结果。
访问一个.php文件时,Nginx或Apache不会直接把源码丢出去,而是识别到.php后缀,转给PHP-FPM处理。小皮面板里那段location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; } 干的就是这事。
PHP-FPM把代码交给Zend引擎:先做词法和语法分析,编译成opcode指令,再一条条执行。执行完把结果拼成HTML,原路返回给浏览器。
所以PHP是请求-响应模型,一个请求跑一遍,跑完内存释放,没有常驻状态。开了opcache后,编译好的opcode会缓存,下次请求跳过解析编译,速度更快。
<?php
// test.php,浏览器访问会走完整流程
echo "hello"; // 执行阶段输出,塞进响应体
$a = 1 + 2; // 这行到执行时才计算
echo $a; // 输出 3
说点什么 0