PHP 全栈开发学习手册:从基础到高级实战、Laravel、Redis、面试题完整版

PHP 全面学习指南(基础 → 高级 → 项目实战 → 面试题)

目录

  1. PHP 简介与环境搭建
  2. PHP 基础语法
  3. 变量与数据类型
  4. 运算符与流程控制
  5. 函数详解
  6. 数组详解
  7. 字符串处理
  8. 表单与请求处理
  9. 文件操作
  10. Cookie 与 Session
  11. 面向对象编程(OOP)
  12. 命名空间与自动加载
  13. 错误处理与异常机制
  14. 数据库 MySQL 操作
  15. PDO 与 MySQLi
  16. MVC 架构思想
  17. Composer 与依赖管理
  18. Laravel 入门与核心思想
  19. PHP 安全开发
  20. Redis 与缓存
  21. API 开发
  22. JWT 登录认证
  23. 高并发与性能优化
  24. Swoole 与协程
  25. Docker 部署 PHP 项目
  26. PHP 项目实战
  27. PHP 常见面试题(基础)
  28. PHP 常见面试题(高级)
  29. Laravel 面试题
  30. Redis 面试题
  31. MySQL 面试题
  32. 项目经验回答模板
  33. PHP 学习路线建议

1. PHP 简介与环境搭建

什么是 PHP

PHP(Hypertext Preprocessor)是一种运行在服务端的脚本语言,特别适合 Web 开发。

特点:

  • 开源免费
  • 学习成本低
  • 适合 Web 开发
  • 与 MySQL 配合非常强
  • Laravel、ThinkPHP 等生态成熟

PHP 执行流程:

浏览器 → Web 服务器(Nginx/Apache) → PHP 解析器 → MySQL → 返回 HTML


安装 PHP

Windows

推荐:

  • XAMPP
  • WampServer
  • PHPStudy

Mac

bash 复制代码
brew install php

Linux

bash 复制代码
sudo apt install php

查看版本:

bash 复制代码
php -v

运行 PHP 文件:

bash 复制代码
php index.php

启动内置服务器:

bash 复制代码
php -S localhost:8000

2. PHP 基础语法

PHP 标签

php 复制代码
<?php
 echo "Hello PHP";
?>

输出语句

php 复制代码
<?php
 echo "hello";
 print "world";
?>

区别:

  • echo 可输出多个值
  • print 只能输出一个值

注释

php 复制代码
// 单行注释
# 单行注释

/*
多行注释
*/

3. 变量与数据类型

变量

php 复制代码
$name = "Tom";
$age = 20;

规则:

  • 必须以 $ 开头
  • 区分大小写

数据类型

字符串

php 复制代码
$str = "hello";

整型

php 复制代码
$num = 100;

浮点型

php 复制代码
$price = 99.9;

布尔型

php 复制代码
$isLogin = true;

数组

php 复制代码
$arr = [1,2,3];

NULL

php 复制代码
$a = null;

数据类型检测

php 复制代码
var_dump($a);

4. 运算符与流程控制

算术运算符

php 复制代码
$a + $b
$a - $b
$a * $b
$a / $b
$a % $b

比较运算符

php 复制代码
==
===
!=
!==
>
<

== 与 === 区别

php 复制代码
1 == "1" // true
1 === "1" // false

=== 会比较类型。


if 判断

php 复制代码
if($age > 18){
    echo "成年人";
}else{
    echo "未成年";
}

switch

php 复制代码
switch($num){
    case 1:
        echo 1;
        break;
}

循环

for

php 复制代码
for($i=0;$i<5;$i++){
    echo $i;
}

while

php 复制代码
while($i < 5){
    $i++;
}

foreach

php 复制代码
foreach($arr as $v){
    echo $v;
}

5. 函数详解

定义函数

php 复制代码
function sum($a,$b){
    return $a + $b;
}

默认参数

php 复制代码
function test($name="Tom"){
    echo $name;
}

引用传参

php 复制代码
function add(&$num){
    $num++;
}

可变参数

php 复制代码
function total(...$nums){
    return array_sum($nums);
}

6. 数组详解

索引数组

php 复制代码
$arr = [1,2,3];

关联数组

php 复制代码
$user = [
    "name" => "Tom",
    "age" => 20
];

常用数组函数

count

php 复制代码
count($arr);

in_array

php 复制代码
in_array(1,$arr);

array_merge

php 复制代码
array_merge($a,$b);

array_push

php 复制代码
array_push($arr,4);

sort

php 复制代码
sort($arr);

7. 字符串处理

拼接

php 复制代码
$str = "hello" . "world";

常用函数

strlen

php 复制代码
strlen($str);

substr

php 复制代码
substr($str,0,3);

explode

php 复制代码
explode(",",$str);

implode

php 复制代码
implode(",",$arr);

trim

php 复制代码
trim($str);

8. 表单与请求处理

GET 请求

php 复制代码
$name = $_GET['name'];

POST 请求

php 复制代码
$name = $_POST['name'];

文件上传

php 复制代码
move_uploaded_file($_FILES['file']['tmp_name'],"uploads/a.png");

9. 文件操作

读取文件

php 复制代码
$content = file_get_contents("a.txt");

写入文件

php 复制代码
file_put_contents("a.txt","hello");

php 复制代码
setcookie("username","tom",time()+3600);

获取:

php 复制代码
$_COOKIE['username'];

Session

php 复制代码
session_start();
$_SESSION['user'] = 'Tom';

11. 面向对象编程(OOP)

类与对象

php 复制代码
class User {
    public $name;

    public function say(){
        echo "hello";
    }
}

$user = new User();

构造函数

php 复制代码
public function __construct($name){
    $this->name = $name;
}

继承

php 复制代码
class Admin extends User {

}

封装

php 复制代码
private $password;

多态

多态核心:

同一个方法不同实现。


抽象类

php 复制代码
abstract class Animal {
    abstract public function run();
}

接口

php 复制代码
interface Test {
    public function demo();
}

Trait

php 复制代码
trait Log {
    public function write(){

    }
}

12. 命名空间与自动加载

命名空间

php 复制代码
namespace App\Controller;

自动加载

Composer 自动加载:

json 复制代码
{
  "autoload": {
    "psr-4": {
      "App\\": "app/"
    }
  }
}

执行:

bash 复制代码
composer dump-autoload

13. 错误处理与异常机制

try catch

php 复制代码
try {

} catch(Exception $e){
    echo $e->getMessage();
}

自定义异常

php 复制代码
throw new Exception("错误");

14. 数据库 MySQL 操作

连接数据库

php 复制代码
$conn = mysqli_connect("localhost","root","123456","test");

查询数据

php 复制代码
$sql = "select * from users";
$result = mysqli_query($conn,$sql);

15. PDO 与 MySQLi

PDO 优势

  • 支持多数据库
  • 支持预处理
  • 更安全

PDO 示例

php 复制代码
$pdo = new PDO("mysql:host=localhost;dbname=test","root","123456");

预处理

php 复制代码
$stmt = $pdo->prepare("select * from users where id=?");
$stmt->execute([1]);

作用:

防止 SQL 注入。


16. MVC 架构思想

MVC:

  • Model 数据层
  • View 视图层
  • Controller 控制层

MVC 请求流程

浏览器 → 路由 → 控制器 → 模型 → 数据库 → 返回视图


17. Composer 与依赖管理

安装 Composer

bash 复制代码
composer -V

安装依赖

bash 复制代码
composer require monolog/monolog

18. Laravel 入门与核心思想

Laravel 特点

  • MVC 架构
  • ORM(Eloquent)
  • Artisan 命令
  • 中间件
  • 队列
  • 事件

创建项目

bash 复制代码
composer create-project laravel/laravel blog

路由

php 复制代码
Route::get('/user',function(){
    return 'hello';
});

控制器

bash 复制代码
php artisan make:controller UserController

19. PHP 安全开发

SQL 注入

错误:

php 复制代码
$sql = "select * from users where id=$id";

正确:

php 复制代码
$stmt = $pdo->prepare("select * from users where id=?");

XSS 攻击

解决:

php 复制代码
htmlspecialchars($str);

CSRF

解决:

Token 验证。


20. Redis 与缓存

Redis 作用

  • 缓存
  • 分布式锁
  • 队列
  • Session 存储

PHP 操作 Redis

php 复制代码
$redis = new Redis();
$redis->connect('127.0.0.1',6379);

21. API 开发

返回 JSON

php 复制代码
header('Content-Type:application/json');

echo json_encode([
    'code'=>200,
    'msg'=>'success'
]);

22. JWT 登录认证

JWT 组成

  • Header
  • Payload
  • Signature

JWT 优点

  • 无状态
  • 适合前后端分离

23. 高并发与性能优化

OPcache

PHP 字节码缓存。


Redis 缓存

减少数据库压力。


数据库优化

  • 索引
  • 分页
  • SQL 优化
  • 读写分离

Nginx 优化

  • gzip
  • 静态资源缓存
  • 负载均衡

24. Swoole 与协程

Swoole 特点

  • 常驻内存
  • 高性能
  • 协程
  • WebSocket

协程优势

提升 IO 性能。


25. Docker 部署 PHP 项目

Dockerfile

dockerfile 复制代码
FROM php:8.2-fpm

RUN docker-php-ext-install pdo pdo_mysql

docker-compose

yaml 复制代码
version: '3'
services:
  php:
    build: .

26. PHP 项目实战

博客系统项目

技术栈

  • PHP
  • MySQL
  • Redis
  • Laravel
  • Nginx

功能模块

用户模块

  • 注册
  • 登录
  • JWT
  • 权限

文章模块

  • 发布文章
  • 编辑文章
  • 删除文章

评论模块

  • 评论
  • 回复

项目亮点

Redis 缓存热点文章

JWT 登录认证

OSS 文件上传

队列异步发送邮件

Nginx + Redis 优化性能


电商项目实战

核心模块

  • 商品
  • 购物车
  • 订单
  • 支付
  • 秒杀

秒杀优化

Redis 预减库存

RabbitMQ 异步下单

防重复提交

限流


27. PHP 常见面试题(基础)

1. GET 和 POST 区别

答案:

  • GET 参数在 URL
  • POST 在请求体
  • GET 不安全
  • POST 更适合提交数据
  • GET 长度有限制

2. include 和 require 区别

答案:

  • include 错误继续执行
  • require 错误直接终止

答案:

Cookie 存客户端。

Session 存服务端。


4. == 和 === 区别

答案:

== 不比较类型。

=== 比较类型。


5. 什么是面向对象

答案:

面向对象核心:

  • 封装
  • 继承
  • 多态

28. PHP 常见面试题(高级)

1. 什么是 PHP-FPM

答案:

PHP FastCGI Process Manager。

用于管理 PHP 进程池。


2. 什么是 FastCGI

答案:

Web 服务器与 PHP 通信协议。


3. 什么是 OPCache

答案:

PHP 字节码缓存。

提升性能。


4. 如何防止 SQL 注入

答案:

  • PDO 预处理
  • 参数绑定
  • 不拼接 SQL

5. 什么是依赖注入

答案:

对象依赖通过外部传入。

降低耦合。


6. 什么是设计模式

常见:

  • 单例模式
  • 工厂模式
  • 观察者模式
  • 策略模式

7. 什么是单例模式

php 复制代码
class Singleton {
    private static $instance;

    private function __construct(){}

    public static function getInstance(){
        if(!self::$instance){
            self::$instance = new self();
        }

        return self::$instance;
    }
}

作用:

全局唯一实例。


29. Laravel 面试题

1. Laravel 生命周期

请求 → 路由 → 中间件 → 控制器 → 响应


2. 中间件作用

请求过滤。

例如:

  • 登录验证
  • 权限验证

3. Eloquent ORM 优点

  • 链式调用
  • 易维护
  • 开发效率高

4. 什么是服务容器

Laravel IOC 容器。

用于依赖注入。


30. Redis 面试题

1. Redis 为什么快

答案:

  • 内存存储
  • 单线程
  • IO 多路复用

2. Redis 持久化

  • RDB
  • AOF

3. 缓存穿透

解决:

  • 布隆过滤器
  • 缓存空值

4. 缓存击穿

解决:

热点 Key 加锁。


5. 缓存雪崩

解决:

  • 过期时间随机
  • Redis 集群

31. MySQL 面试题

1. 索引是什么

答案:

提升查询速度的数据结构。


2. B+Tree 为什么适合索引

答案:

  • 查询效率稳定
  • 范围查询强
  • 磁盘 IO 少

3. 什么是事务

事务四大特性:

  • ACID

4. 什么是死锁

多个事务互相等待。


5. 如何优化 SQL

答案:

  • 加索引
  • 避免 select *
  • 分页优化
  • explain 分析

32. 项目经验回答模板

面试项目介绍模板

"我负责后端开发,主要使用 Laravel + MySQL + Redis。

项目中实现了 JWT 登录认证、Redis 缓存、消息队列、OSS 上传等功能。

在性能优化方面,通过 Redis 缓存热点数据、数据库索引优化、Nginx gzip 压缩,将接口响应时间降低了约 40%。"


面试性能优化回答

"主要从以下几个方向优化:

  1. Redis 缓存
  2. 数据库索引优化
  3. SQL 优化
  4. 队列异步处理
  5. Nginx 静态缓存
  6. OPcache 字节码缓存"

33. PHP 学习路线建议

第一阶段(基础)

学习内容:

  • PHP 语法
  • 数组
  • 函数
  • 表单
  • MySQL

周期:

1~2 个月。


第二阶段(进阶)

学习内容:

  • OOP
  • MVC
  • Composer
  • Laravel
  • Redis

周期:

2~3 个月。


第三阶段(高级)

学习内容:

  • 高并发
  • Swoole
  • 微服务
  • Docker
  • Kubernetes

周期:

长期。


34. PHP 相关学习资源与文档

官方文档

PHP 官方文档

  • PHP 官方文档内容最权威
  • 包含函数手册
  • 面向对象
  • 扩展
  • 安全
  • 配置

推荐:

  • 先学基础语法
  • 再看函数手册
  • 遇到不会的函数直接查官方文档

Composer 官方文档

学习内容:

  • 包管理
  • 自动加载
  • 依赖管理
  • PSR 规范

适合学习:

  • 现代 PHP 开发
  • Laravel
  • 框架开发

Laravel 官方文档

Laravel 是 PHP 最流行框架之一。

官方文档非常完整:

  • 路由
  • 控制器
  • ORM
  • 队列
  • 事件
  • 中间件
  • 缓存
  • 权限

学习建议:

边做项目边看文档。


Redis 官方文档

重点学习:

  • String
  • Hash
  • List
  • Set
  • ZSet
  • 持久化
  • 集群
  • 缓存优化

MySQL 官方文档

重点:

  • 索引
  • SQL 优化
  • explain
  • 事务
  • 主从复制

35. PHP 常用开发工具

VSCode

推荐插件:

  • PHP Intelephense
  • PHP Namespace Resolver
  • DotENV
  • Laravel Blade Snippets

PhpStorm

PHP 专业 IDE。

优点:

  • 智能提示强
  • Laravel 支持优秀
  • 调试方便
  • Git 集成

缺点:

  • 占内存
  • 收费

Postman

用于测试 API。

适合:

  • 接口调试
  • Token 测试
  • 文件上传

MySQL 数据库管理工具。


Redis Desktop Manager

Redis 可视化工具。


36. PHP 常见框架介绍

Laravel

Laravel 特点

  • 当前最流行 PHP 框架
  • 生态完整
  • 开发效率高
  • 适合中大型项目

核心功能

  • 路由
  • 中间件
  • ORM
  • 队列
  • 事件
  • 缓存
  • 服务容器
  • 依赖注入

适合项目

  • 后台管理系统
  • 电商系统
  • API 项目
  • SaaS 系统

ThinkPHP

ThinkPHP 特点

  • 国产框架
  • 学习成本低
  • 上手快
  • 文档中文友好

优点

  • 适合新手
  • CURD 开发效率高
  • 国内使用广泛

缺点

  • 大型项目扩展性一般

Symfony

Symfony 特点

  • 企业级框架
  • 非常规范
  • 组件化强

优点

  • 架构优秀
  • 可维护性强
  • 大型项目适合

缺点

  • 学习难度较高

Yii2

Yii2 特点

  • 高性能
  • 开发效率高
  • Gii 代码生成器优秀

适合

  • CMS
  • 后台系统
  • 企业项目

Hyperf

Hyperf 特点

  • 基于 Swoole
  • 协程框架
  • 高并发

适合

  • 微服务
  • IM
  • 高并发 API
  • 实时系统

Workerman

Workerman 特点

  • 常驻内存
  • 支持 WebSocket
  • 高性能

适合

  • 聊天系统
  • 推送系统
  • 长连接项目

37. PHP 推荐学习资源

官方文档与资源链接

PHP 官方文档


Composer 官方文档


Laravel 官方文档


ThinkPHP 官方文档


Symfony 官方文档


Yii2 官方文档


Hyperf 官方文档


Workerman 官方文档


Redis 官方文档


MySQL 官方文档


PHP 常用资源网站

Packagist

PHP 最大 Composer 包平台:


PHP The Right Way

PHP 最佳实践:


Laracasts

Laravel 视频学习平台:


PHP-FIG

PSR 规范:


GitHub

开源项目:

推荐搜索:

  • Laravel Admin
  • PHP Blog
  • PHP Mall
  • PHP CMS

Docker 官方文档


Nginx 官方文档


RabbitMQ 官方文档


Elasticsearch 官方文档


视频学习平台

视频学习平台

Bilibili

推荐搜索:

  • PHP 全栈开发
  • Laravel 实战
  • Redis 教程
  • MySQL 优化

慕课网

适合:

  • Laravel
  • Docker
  • Redis
  • MySQL

极客时间

推荐专栏:

  • PHP 进阶
  • MySQL 实战
  • Redis 核心技术

38. PHP 学习建议

新手阶段

重点:

  • PHP 基础
  • MySQL
  • HTML/CSS/JS
  • 表单
  • API

不要一开始就学框架。


进阶阶段

重点:

  • Laravel
  • Redis
  • Linux
  • Docker
  • Git
  • API 开发

高级阶段

重点:

  • 高并发
  • Swoole
  • 微服务
  • Kubernetes
  • 消息队列
  • 性能优化

总结

PHP 依然是 Web 后端的重要技术栈。

学习重点建议:

  • 扎实基础
  • 熟悉 Laravel
  • 掌握 MySQL 优化
  • 熟悉 Redis
  • 掌握项目实战
  • 重视性能优化
  • 熟悉面试题

如果目标是就业:

建议重点掌握:

  • Laravel
  • Redis
  • MySQL
  • Linux
  • Docker
  • API 开发
  • JWT
  • 队列
  • 高并发优化
相关推荐
fake_ss19813 小时前
AI时代学习全栈项目开发的新范式
java·人工智能·学习·架构·个人开发·学习方法
Upsy-Daisy14 小时前
AI Agent 项目学习笔记(二):Spring AI 与 ChatClient 主链路解析
人工智能·笔记·学习
C+++Python15 小时前
C++ 进阶学习完整指南
java·c++·学习
sulikey16 小时前
个人Linux操作系统学习笔记2 - gcc与库的理解
linux·笔记·学习·操作系统·gcc·
南浦别a16 小时前
第102天--时隔多日的书写
学习·程序人生
Jackyzhe16 小时前
从零学习Kafka:消费者组重平衡
分布式·学习·kafka
吃好睡好便好17 小时前
在Creo中如何把新建零件文件时的默认模板设置为公制单位
学习·3d·信息可视化
优橙教育17 小时前
5G网络优化关键参数解读:从入门到实战
网络·学习·5g
WG_1717 小时前
虚拟机共享文件挂载
学习