Skip to content

第 20 章:学习资源与面试题

20.1 PHP 官方文档

PHP 官方网站

文档结构

  1. 入门指引:PHP 基础介绍和快速入门
  2. 安装与配置:PHP 安装和配置说明
  3. 语言参考:PHP 语法和语言特性
  4. 安全:PHP 安全相关内容
  5. 特点:PHP 特殊功能介绍
  6. 函数参考:PHP 内置函数文档

使用技巧

  1. 搜索函数:在文档页面直接搜索函数名
  2. 查看示例:每个函数都有详细的使用示例
  3. 用户评论:查看其他开发者的使用经验和技巧

20.2 新手推荐教程

在线教程网站

1. 菜鸟教程

2. W3School

3. PHP 中文网

视频教程平台

1. B站

  • 搜索「PHP 入门教程」
  • 推荐UP主:极客学院、慕课网

2. 慕课网

3. 极客时间

推荐书籍

1. 《PHP 和 MySQL Web 开发》

  • 作者:Luke Welling、Laura Thomson
  • 特点:经典入门书籍,内容全面

2. 《PHP 核心技术与最佳实践》

  • 作者:列旭松、陈文
  • 特点:深入讲解 PHP 核心技术

3. 《Modern PHP》

  • 作者:Josh Lockhart
  • 特点:现代 PHP 开发最佳实践

20.3 开源项目推荐

CMS 系统

1. WordPress

2. Drupal

3. Joomla

电商系统

1. Magento

2. OpenCart

3. ECShop

框架

1. Laravel

2. Symfony

3. CodeIgniter

20.4 PHP 高频面试题(基础 + 数据库 + 安全)

基础概念题

1. 什么是 PHP?

PHP(Hypertext Preprocessor)是一种开源的服务器端脚本语言,特别适合 Web 开发,可以嵌入 HTML 中使用。

2. PHP 的优势是什么?

  • 开源免费
  • 跨平台
  • 学习成本低
  • 开发效率高
  • 社区活跃

3. PHP 的数据类型有哪些?

  • 标量类型:int、float、string、bool
  • 复合类型:array、object
  • 特殊类型:null、resource

4. echo、print、print_r、var_dump 的区别?

  • echo:输出一个或多个字符串,没有返回值
  • print:输出一个字符串,返回 1
  • print_r:打印变量的易读信息,适合数组
  • var_dump:输出变量的类型和值,适合调试

5. GET 和 POST 的区别?

  • GET:数据在 URL 中可见,有长度限制,适合查询
  • POST:数据在请求体中,无长度限制,适合提交数据

核心语法题

6. 如何定义常量?

php
define('CONSTANT_NAME', 'value');
const CONSTANT_NAME = 'value';

7. 数组排序函数有哪些?

  • sort():升序排序
  • rsort():降序排序
  • asort():根据值升序排序
  • ksort():根据键升序排序

8. 字符串常用函数有哪些?

  • strlen():获取字符串长度
  • substr():截取字符串
  • strpos():查找字符串位置
  • str_replace():替换字符串
  • explode():分割字符串
  • implode():连接数组为字符串

9. 如何包含文件?

  • include:包含文件,失败时警告
  • require:包含文件,失败时致命错误
  • include_once:只包含一次
  • require_once:只包含一次
  • Session:存储在服务器端,安全性高
  • Cookie:存储在客户端,安全性低

数据库题

11. 如何连接 MySQL 数据库?

php
$conn = mysqli_connect('localhost', 'root', 'password', 'database');
$pdo = new PDO('mysql:host=localhost;dbname=database', 'root', 'password');

12. 如何防止 SQL 注入?

  • 使用预处理语句
  • 使用 mysqli_real_escape_string()
  • 使用 PDO 预处理

13. MySQL 索引的作用?

  • 提高查询速度
  • 降低查询成本
  • 加速表连接

14. 什么是事务?

事务是一组数据库操作,要么全部成功,要么全部失败。

15. 事务的 ACID 特性?

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

安全题

16. 什么是 XSS 攻击?如何防止?

XSS(跨站脚本攻击)是通过注入恶意脚本攻击网站。

防止方法:

  • 使用 htmlspecialchars() 转义输出
  • 设置 Content-Security-Policy 头
  • 过滤用户输入

17. 什么是 CSRF 攻击?如何防止?

CSRF(跨站请求伪造)是伪造用户请求攻击网站。

防止方法:

  • 验证 Token
  • 验证 Referer
  • 验证码

18. 如何安全存储用户密码?

  • 使用 password_hash() 加密
  • 使用 password_verify() 验证
  • 不要使用 MD5、SHA1 等弱加密

进阶题

19. 什么是 MVC?

MVC 是一种设计模式:

  • Model:数据处理
  • View:页面展示
  • Controller:业务逻辑

20. 如何优化 PHP 性能?

  • 使用缓存(Redis、Memcached)
  • 优化数据库查询
  • 使用 CDN 加速
  • 开启 OPcache
  • 使用 PHP-FPM

20.5 面试技巧(新手如何快速记忆核心语法,应对提问)

1. 理解而非死记

  • 理解语法的原理和用途
  • 通过实践加深记忆

2. 分类记忆

  • 按功能分类(字符串、数组、文件等)
  • 按使用频率分类(常用、偶尔用)

3. 实践练习

  • 多写代码,多练习
  • 做小项目巩固知识

4. 总结归纳

  • 制作思维导图
  • 写学习笔记
  • 整理常用代码片段

5. 面试准备

  • 准备自我介绍
  • 复习核心知识点
  • 准备项目经验介绍
  • 模拟面试练习

小结

通过本章的学习,你了解了 PHP 学习的各种资源,包括官方文档、在线教程、视频教程和推荐书籍。你还学习了 PHP 高频面试题,包括基础概念、核心语法、数据库和安全等方面。掌握这些知识和技巧,可以帮助你更好地学习和应用 PHP,并为面试做好准备。在学习过程中,要保持持续学习的态度,不断实践和总结,逐步提高自己的 PHP 开发能力。

© 2026 编程马·菜鸟教程 版权所有