你写的 HTML 页面,双击就能在浏览器打开,为什么还要学什么”后端""PHP”?这个问题问得好。因为纯 HTML 的页面是”死的”——它里面的内容是写死在文件里的,全世界每个人打开看到的一模一样,而且它记不住任何东西:你昨天登录了、你加进购物车的商品、你发的评论,纯 HTML 一个都存不住。
后端就是来解决这些问题的:它是一段跑在服务器上的程序,负责”记住用户""处理提交""读写数据库""根据情况返回不同的内容”。而 PHP 是最经典、最容易上手的服务器端语言之一,尤其适合做网站。全球超过七成的网站(包括早期的 Facebook、Wikipedia)后端都大量用过 PHP。
这一篇我们搞懂三件事:后端到底在干什么、怎么把 PHP 环境跑起来、以及 PHP 最基本的语法和一批常用内置函数。跟着敲,别只看。
后端到底在干什么
打个比方:HTML/CSS/JS 是”前台服务员和装修”,负责把页面漂亮地展示给你;而后端是”后厨”,你点什么菜(发请求),它现做现端出来(返回数据),还负责管仓库(数据库)、记账(会话)。
具体来说,后端干这些活:
- 接收请求:用户在表单里填了用户名密码,点提交,浏览器把数据发给服务器。
- 处理业务逻辑:验证账号对不对、算一下总价、判断有没有权限。
- 读写数据:把新用户存进数据库,或把商品列表查出来。
- 返回响应:把结果变成网页或 JSON 回给浏览器。
没有后端,网页就只能是个”静态展示板”;有了后端,它才变成真正的”应用”。
认识 Web 容器
你可能会问:PHP 代码写在哪?谁去执行它?
浏览器自己看不懂 PHP(就像看不懂 Python)。PHP 代码必须由一个叫 PHP 解释器 的程序来执行,执行完把结果(通常是 HTML)交给浏览器。而负责”接收浏览器请求 → 交给 PHP 解释器 → 把结果返回”的这个中间人,叫 Web 容器 / Web 服务器(比如 Apache、Nginx)。
新手最省事的方式是用集成环境,一条配置都不用写:
- Windows / macOS:装 XAMPP 或 phpStudy,勾选 Apache + PHP + MySQL,点”启动”即可。
- Linux(Ubuntu):
sudo apt install php libapache2-mod-php装好 PHP 模块,重启 Apache 就能跑。 - macOS(Homebrew):
brew install php,再用brew services start php启动。
装好后,把你的 .php 文件放到集成环境指定的网站根目录(XAMPP 是 htdocs 文件夹,phpStudy 是 WWW 文件夹),浏览器访问 http://localhost/你的文件.php 就能看到效果。
小提示:集成环境把”Web 服务器 + PHP + 数据库”打包好了,新手不用分别配置,强烈推荐。等你熟练了再学分开部署。
第一个 PHP 页面
新建文件 hello.php,内容:
<?php
echo "你好,PHP!";
?>
把它放进网站根目录,浏览器访问 http://localhost/hello.php,页面上会出现”你好,PHP!”。
注意这几件事:
- PHP 代码必须包在
<?php和?>之间。服务器看到<?php才知道”后面这段要当 PHP 执行”,执行完把结果替换进去。 echo是 PHP 里”输出”的语句,把文字送到浏览器。- 文件后缀必须是
.php,服务器才会交给 PHP 解释器处理;写成.html就不会执行里面的 PHP。
PHP 还能直接嵌进 HTML,这就是它做网站特别顺手的地方:
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="utf-8"><title>PHP 混写</title></head>
<body>
<h1>现在的时间是:<?php echo date('Y-m-d H:i:s'); ?></h1>
</body>
</html>
每次刷新,时间都会变——因为这段是服务器实时算出来的,不是写死的。这就是”动态页面”和”静态页面”最直观的区别。
PHP 基本语法
变量:以 $ 开头
PHP 的变量名前面必须加美元符号 $,不用提前声明类型,赋值即创建:
$name = "小明"; // 字符串
$age = 18; // 整数
$height = 1.75; // 浮点数
$isStudent = true; // 布尔
字符串可以用双引号或单引号。双引号里能直接解析变量,单引号里原样输出:
echo "我叫 $name"; // 输出:我叫 小明
echo '我叫 $name'; // 输出:我叫 $name(变量没被替换)
拼接字符串用小数点 . 运算符:
echo "我叫 " . $name . ",今年 " . $age . " 岁。";
数组:装一组值
PHP 数组很灵活,既能当”列表”也能当”字典”:
// 索引数组(像列表)
$fruits = ["苹果", "香蕉", "橘子"];
echo $fruits[0]; // 苹果
// 关联数组(像字典,键 => 值)
$user = [
"name" => "小明",
"age" => 18
];
echo $user["name"]; // 小明
遍历数组用 foreach:
foreach ($fruits as $f) {
echo $f . "<br>";
}
条件与循环
if ($age >= 18) {
echo "成年人";
} else {
echo "未成年";
}
for ($i = 1; $i <= 5; $i++) {
echo "第 $i 次<br>";
}
while ($age < 20) {
$age++;
}
注意 PHP 每行结尾要写分号 ;,漏写会报错。
函数
function add($a, $b) {
return $a + $b;
}
echo add(3, 5); // 8
常用内置函数
PHP 自带几千个函数,下面挑最常用的一批,记住能省很多事。
数学类:
round(3.14159, 2)→3.14(四舍五入,保留 2 位)rand(1, 100)→ 1~100 之间的随机整数max(3, 7, 2)→7;min(...)同理abs(-5)→5(绝对值)
字符串类:
strlen("你好abc")→ 字符个数(注意中文按字节算,中文用mb_strlen("你好", "UTF-8")才准)str_replace("坏", "好", "天气真坏")→"天气真好"(替换)trim(" hello ")→"hello"(去首尾空格)mb_substr("微信公众号", 0, 3, "UTF-8")→"微信公"(截取,支持中文)strtolower("ABC")/strtoupper("abc")→ 大小写转换
文件类:
file_get_contents("a.txt")→ 读取整个文件内容成字符串file_put_contents("a.txt", "内容")→ 把内容写入文件(覆盖)file_exists("a.txt")→ 文件是否存在(布尔)
时间类:
date("Y-m-d H:i:s")→ 当前时间,如2026-07-15 14:30:00time()→ 当前时间戳(从 1970 年到现在的秒数)strtotime("+1 day")→ 明天的时间戳
示例:把当前时间写进日志文件
$log = date("Y-m-d H:i:s") . " 有人访问了首页\n";
file_put_contents("visit.log", $log, FILE_APPEND);
FILE_APPEND 表示”追加”而不是覆盖,这样每次访问都会在历史记录后面加一行。
常见新手坑
- 页面显示源码而不是执行:说明服务器没把
.php交给 PHP 解释器。检查集成环境是否启动了 Apache/PHP,文件是否放在网站根目录。 - 中文乱码:在
<head>里加<meta charset="utf-8">,并且保存文件时编码选 UTF-8。 - 忘记
$:变量名漏写美元符是 PHP 新手最常见的语法错误。 - 漏写分号:每行结尾的分号
;不能省。
这一篇你该记住的
- 后端负责”记住用户、处理提交、读写数据库、返回动态内容”;HTML 只能做静态展示。
- PHP 代码由 PHP 解释器执行,Web 容器(Apache/Nginx)负责接收请求并交付结果;新手用 XAMPP/phpStudy 集成环境最省事。
- PHP 代码写在
<?php ... ?>之间,变量以$开头,字符串用.拼接,每行结尾写;。 - 数组既可以是索引列表也可以是关联字典;
foreach用来遍历。 - 常用内置函数覆盖数学、字符串、文件、时间四类,记住
date()、file_put_contents()、mb_substr()这几个高频的。
下一篇我们专门讲”PHP 怎么和 HTML 混写、怎么接收用户提交的表单、怎么实现页面跳转”,那是后端真正开始跟用户互动的地方。