PHP 是什么
服务端脚本、WordPress/Laravel 生态;与 Java 后端对照。
PHP 是什么
这一课你将能做到
- 说清楚 PHP 在一次 Web 请求中的位置和完整处理流程
- 解释 PHP「每请求重新加载」的运行模型,以及 PHP-FPM 在其中的角色
- 在本机准备好 PHP 8.2 环境,用 CLI 和内置服务器各跑通第一段代码
为什么要学
PHP 是世界上部署最广的服务端语言之一:WordPress 支撑了全球四成以上的网站,Laravel、Symfony 是大量创业公司的默认选择,Facebook 早期也靠 PHP 起家。作为 Java 开发者,理解 PHP 的运行模型,能让你在选型评审、接手老项目、跨栈协作时有专业判断力,而不是停留在「PHP 很烂」「PHP 简单」的刻板印象上。
人话:浏览器发出请求 → Web 服务器收到 → 交给 PHP 处理 → PHP 查数据库、算业务逻辑 → 生成 HTML 或 JSON 返回浏览器。PHP 就是中间那个「处理」的引擎,和 Java Web 里 Servlet/Controller 扮演的角色类似,但生命周期完全不同。
先建立图像
一次请求在 PHP 世界里的完整旅程:
浏览器
│ HTTP 请求 GET /index.php
▼
Nginx / Apache(Web 服务器,只管收发 HTTP)
│ 发现是 PHP 文件,通过 FastCGI 协议转发
▼
PHP-FPM 进程池(常驻内存的主进程 + 一组工作进程)
│ 取一个空闲工作进程,加载脚本,执行
▼
你的 index.php
│ 读超全局变量、查库、拼字符串
▼
输出 HTML/JSON,原路返回给浏览器
关键点:工作进程干完这一单,所有变量立即销毁,下一个请求从零开始。这就是 PHP 著名的「共享无关(shared-nothing)」架构,理解了它,PHP 的大量设计取舍都能想通。
跟着做
步骤 1:确认 PHP 环境
打开终端执行:
php -v
看到 PHP 8.2.x 或更高版本即可。没有环境时:Windows 可用 phpstudy、XAMPP 或直接上 Docker;macOS 用 brew install php;Linux 用发行版包管理器装 php8.2-cli。建议先学 CLI 模式,后面再上 FPM。
步骤 2:CLI 跑第一段代码
新建 hello.php,输入:
<?php
declare(strict_types=1);
$name = 'PHP';
printf("你好,%s!当前版本:%s\n", $name, PHP_VERSION);
执行 php hello.php,输出:
你好,PHP!当前版本:8.2.21
<?php 是 PHP 代码的开始标记;PHP_VERSION 是内置常量;CLI 模式下没有 HTTP,纯本地执行。
步骤 3:内置 Web 服务器跑通 HTTP
新建目录 demo,里面放 index.php:
<?php
header('Content-Type: text/plain; charset=utf-8');
echo '现在是 ' . date('H:i:s') . PHP_EOL;
echo '请求方法:' . $_SERVER['REQUEST_METHOD'] . PHP_EOL;
在该目录执行:
php -S localhost:8000
浏览器访问 http://localhost:8000,能看到当前时间和 GET。反复刷新,时间在变——说明每次请求都重新执行了一遍脚本。
步骤 4:亲手感受 shared-nothing
在 demo 里加 counter.php: