教程
⚙️

后端开发

Node.js、Python、Go 等服务端开发与 API 设计。

PHP 入门:后端到底是干什么的

从"为什么网页需要后端"讲起,认识 Web 容器,装好 PHP 环境,并掌握 PHP 的基本语法、函数与常用内置函数(数学/字符串/文件/时间)。

· 更新于 2026-07-15 阅读量 --

你写的 HTML 页面,双击就能在浏览器打开,为什么还要学什么”后端""PHP”?这个问题问得好。因为纯 HTML 的页面是”死的”——它里面的内容是写死在文件里的,全世界每个人打开看到的一模一样,而且它记不住任何东西:你昨天登录了、你加进购物车的商品、你发的评论,纯 HTML 一个都存不住。

后端就是来解决这些问题的:它是一段跑在服务器上的程序,负责”记住用户""处理提交""读写数据库""根据情况返回不同的内容”。而 PHP 是最经典、最容易上手的服务器端语言之一,尤其适合做网站。全球超过七成的网站(包括早期的 Facebook、Wikipedia)后端都大量用过 PHP。

这一篇我们搞懂三件事:后端到底在干什么、怎么把 PHP 环境跑起来、以及 PHP 最基本的语法和一批常用内置函数。跟着敲,别只看。

后端到底在干什么

打个比方:HTML/CSS/JS 是”前台服务员和装修”,负责把页面漂亮地展示给你;而后端是”后厨”,你点什么菜(发请求),它现做现端出来(返回数据),还负责管仓库(数据库)、记账(会话)。

具体来说,后端干这些活:

  1. 接收请求:用户在表单里填了用户名密码,点提交,浏览器把数据发给服务器。
  2. 处理业务逻辑:验证账号对不对、算一下总价、判断有没有权限。
  3. 读写数据:把新用户存进数据库,或把商品列表查出来。
  4. 返回响应:把结果变成网页或 JSON 回给浏览器。

没有后端,网页就只能是个”静态展示板”;有了后端,它才变成真正的”应用”。

认识 Web 容器

你可能会问:PHP 代码写在哪?谁去执行它?

浏览器自己看不懂 PHP(就像看不懂 Python)。PHP 代码必须由一个叫 PHP 解释器 的程序来执行,执行完把结果(通常是 HTML)交给浏览器。而负责”接收浏览器请求 → 交给 PHP 解释器 → 把结果返回”的这个中间人,叫 Web 容器 / Web 服务器(比如 Apache、Nginx)。

新手最省事的方式是用集成环境,一条配置都不用写:

  • Windows / macOS:装 XAMPPphpStudy,勾选 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)7min(...) 同理
  • 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:00
  • time() → 当前时间戳(从 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 混写、怎么接收用户提交的表单、怎么实现页面跳转”,那是后端真正开始跟用户互动的地方。