0

0

对于PHP面试知识点的小结

不言

不言

发布时间:2018-07-14 11:41:38

|

1765人浏览过

|

来源于php中文网

原创

这篇文章主要介绍了关于对php面试知识点的小结,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

复制过来做个目录,具体细节因为自己也是一知半解的,所以打算慢慢把列表里面的问题都研究一下

PHP interview best practices in China该仓库主要真是国内 PHP 面试经常被问到的知识点做汇总。 仅是针对性指出知识点,相应还需自己查找相关资料系统学习。 我希望各位能不仅仅了解是什么,还要了解为什么,以及背后的原理。

如果您有对相应知识点非常系统的资料,欢迎 PR 增加链接。 不建议您使用 fork,资料会随时更新。

如果你现在处于以下几种状态,本资料非常适合你:

  • 准备换工作,不知道从哪开始准备

  • 技术遇到瓶颈,不知道该学什么

  • 准备学 PHP,但不知道领域有多深

    立即学习PHP免费学习笔记(深入)”;

基础篇

  • 了解大部分数组处理函数

  • 字符串处理函数(区别 mb_ 系列函数)

  • & 引用,结合案例分析

  • == 与 === 区别

  • isset 与 empty 区别

  • 全部魔术函数理解

  • static、$this、self 区别

  • private、protected、public、final 区别

  • OOP 思想

  • 抽象类、接口 分别使用场景

  • Trait 是什么东西

  • echo、print、print_r 区别

  • __construct 与 __destruct 区别

  • static 作用(区分类与函数内)

  • __toString() 作用

  • 单引号'与双引号"区别

  • 常见 HTTP 状态码,分别代表什么含义

  • 301 什么意思 404 呢

进阶篇

  • Autoload、Composer 原理

  • Session 共享、存活时间

  • 异常处理

  • 如何 foreach 迭代对象

  • 如何数组化操作对象 $obj[key]

  • 如何函数化对象 $obj(123);

  • yield 是什么,说个使用场景

  • PSR 是什么,PSR-1, 2, 4, 7

  • 如何获取客户端 IP 和 服务端 IP 地址

  • 如何开启 PHP 异常提示

  • 如何返回一个301重定向

  • 如何获取扩展安装路径

  • 字符串、数字比较大小的原理,注意 0 开头的8进制、0x 开头16进制

  • BOM 头是什么,怎么除去

  • 什么是 MVC

  • 依赖注入实现原理

  • 如何异步执行命令

  • 模板引擎是什么,解决什么问题、实现原理(Smarty、Twig、Blade)

  • 如何实现链式操作 $obj->w()->m()->d();

  • Xhprof 、Xdebug 性能调试工具使用

  • 索引数组 [1, 2] 与关联数组 ['k1'=>1, 'k2'=>2] 有什么区别

实践篇

  • 给定二维数组,根据某个字段排序

  • 如何判断上传文件类型,如:仅允许 jpg 上传

  • 不使用临时变量交换两个变量的值 $a=1; $b=2; => $a=2; $b=1;

  • strtoupper 在转换中文时存在乱码,你如何解决?php echo strtoupper('ab你好c');

  • Websocket、Long-Polling、Server-Sent Events(SSE) 区别

  • "Headers already sent" 错误是什么意思,如何避免

算法篇

  • 快速排序(手写)

  • 冒泡排序(手写)

  • 二分查找(了解)

  • 查找算法 KMP(了解)

  • 深度、广度优先搜索(了解)

  • LRU 缓存淘汰算法(了解,Memcached 采用该算法)

数据结构篇(了解)

  • 堆、栈特性

  • 队列

  • 哈希表

  • 链表

对比篇

  • Cookie 与 Session 区别

  • GET 与 POST 区别

  • include 与 require 区别

  • include_once 与 require_once 区别

  • Memcached 与 Redis 区别

  • MySQL 各个存储引擎、及区别(一定会问 MyISAM 与 Innodb 区别)

  • HTTP 与 HTTPS 区别

  • Apache 与 Nginx 区别

  • define() 与 const 区别

  • traits 与 interfaces 区别 及 traits 解决了什么痛点?

  • Git 与 SVN 区别

数据库篇

  • MySQL

    • 索引、联合索引(命中条件)

    • 分库分表(水平分表垂直分表

    • 分区

    • 会使用 explain 分析 SQL 性能问题,了解各参数含义

    • Slow Log(有什么用,什么时候需要)

    • 重点理解 typerowskey

    • CRUD

    • JOIN、LEFT JOIN 、RIGHT JOIN、INNER JOIN

    • UNION

    • GROUP BY + COUNT + WHERE 组合案例

    • 常用 MySQL 函数,如:now()、md5()、concat()、uuid()等

    • 1:11:nn:n 各自适用场景

    • 了解触发器是什么,说个使用场景

    • 数据库优化手段

  • MSSQL(了解)

    • 查询最新5条数据

  • NOSQL

    • 持久化

    • 支持多钟数据类型

    • 可利用 CPU 多核心

    • 内存淘汰机制

    • 集群 Cluster

    • 支持 SQL

    • 性能对比

    • 支持事务

    • 应用场景

    • Redis、Memcached、MongoDB

    • 对比、适用场景(可从以下维度进行对比)

    • 你之前为了解决什么问题使用的什么,为什么选它?

服务器篇

  • 查看 CPU、内存、时间、系统版本等信息

  • find 、grep 查找文件

  • awk 处理文本

  • 查看命令所在目录

  • 自己编译过 PHP 吗?如何打开 readline 功能

  • 如何查看 PHP 进程的内存、CPU 占用

  • 如何给 PHP 增加一个扩展

  • 修改 PHP Session 存储位置、修改 INI 配置参数

  • 负载均衡有哪几种,挑一种你熟悉的说明其原理

  • 数据库主从复制 M-S 是怎么同步的?是推还是拉?会不会不同步?怎么办

  • 如何保障数据的可用性,即使被删库了也能恢复到分钟级别。你会怎么做。

  • 数据库连接过多,超过最大值,如何优化架构。从哪些方便处理?

  • 502 大概什么什么原因? 如何排查 504呢?

架构篇

  • 偏运维(了解):

    • 负载均衡(Nginx、HAProxy、DNS)

    • 主从复制(MySQL、Redis)

    • 数据冗余、备份(MySQL增量、全量 原理)

    • 监控检查(分存活、服务可用两个维度)

    • MySQL、Redis、Memcached Proxy 、Cluster 目的、原理

    • 分片

      Imagine By Magic Studio
      Imagine By Magic Studio

      AI图片生成器,用文字制作图片

      下载
    • 高可用集群

    • RAID

    • 源代码编译、内存调优

  • 缓存

    • 工作中遇到哪里需要缓存,分别简述为什么

  • 搜索解决方案

  • 性能调优

  • 各维度监控方案

  • 日志收集集中处理方案

  • 国际化

  • 数据库设计

  • 静态化方案

  • 画出常见 PHP 应用架构图

框架篇

  • ThinkPHP(TP)、CodeIgniter(CI)、Zend(非 OOP 系列)

  • Yaf、Phalcon(C 扩展系)

  • Yii、Laravel、Symfony(纯 OOP 系列)

  • Swoole、Workerman (网络编程框架)

  • 对比框架区别几个方向点

    • 是否纯 OOP

    • 类库加载方式(自己写 autoload 对比 composer 标准)

    • 易用性方向(CI 基础框架,Laravel 这种就是高开发效率框架以及基础组件多少)

    • 黑盒(相比 C 扩展系)

    • 运行速度(如:Laravel 加载一大堆东西)

    • 内存占用

设计模式

  • 单例模式(重点)

  • 工厂模式(重点)

  • 观察者模式(重点)

  • 依赖注入(重点)

  • 装饰器模式

  • 代理模式

  • 组合模式

安全篇

  • SQL 注入

  • XSS 与 CSRF

  • 输入过滤

  • Cookie 安全

  • 禁用 mysql_ 系函数

  • 数据库存储用户密码时,应该是怎么做才安全

  • 验证码 Session 问题

  • 安全的 Session ID (让即使拦截后,也无法模拟使用)

  • 目录权限安全

  • 包含本地与远程文件

  • 文件上传 PHP 脚本

  • eval 函数执行脚本

  • disable_functions 关闭高危函数

  • FPM 独立用户与组,给每个目录特定权限

  • 了解 Hash 与 Encrypt 区别

高阶篇

  • PHP 数组底层实现 (HashTable + Linked list)

  • Copy on write 原理,何时 GC

  • PHP 进程模型,进程通讯方式,进程线程区别

  • yield 核心原理是什么

  • PDO prepare 原理

  • PHP 7 与 PHP 5 有什么区别

  • Swoole 适用场景,协程实现方式

前端篇

  • 原生获取 DOM 节点,属性

  • 盒子模型

  • CSS 文件、style 标签、行内 style 属性优先级

  • HTML 与 JS 运行顺序(页面 JS 从上到下)

  • JS 数组操作

  • 类型判断

  • this 作用域

  • .map() 与 this 具体使用场景分析

  • Cookie 读写

  • JQuery 操作

  • Ajax 请求(同步、异步区别)随机数禁止缓存

  • Bootstrap 有什么好处

  • 跨域请求 N 种解决方案

  • 新技术(了解)

    • ES6

    • 模块化

    • 打包

    • 构建工具

    • vue、react、webpack、

    • 前端 mvc

  • 优化

    • 浏览器单域名并发数限制

    • 静态资源缓存 304 (If-Modified-Since 以及 Etag 原理)

    • 多个小图标合并使用 position 定位技术 减少请求

    • 静态资源合为单次请求 并压缩

    • CDN

    • 静态资源延迟加载技术、预加载技术

    • keep-alive

    • CSS 在头部,JS 在尾部的优化(原理)

网络篇

  • IP 地址转 INT

  • 192.168.0.1/16 是什么意思

  • DNS 主要作用是什么?

  • IPv4 与 v6 区别

网络编程篇

  • TCP 三次握手流程

  • TCP、UDP 区别,分别适用场景

  • 有什么办法能保证 UDP 高可用性(了解)

  • TCP 粘包如何解决?

  • 为什么需要心跳?

  • 什么是长连接?

  • HTTPS 是怎么保证安全的?

  • 流与数据报的区别

  • 进程间通信几种方式,最快的是哪种?

  • fork() 会发生什么?

API 篇

  • RESTful 是什么

  • 如何在不支持 DELETE 请求的浏览器上兼容 DELETE 请求

  • 常见 API 的 APP_ID APP_SECRET 主要作用是什么?阐述下流程

  • API 请求如何保证数据不被篡改?

  • JSON 和 JSONP 的区别

  • 数据加密和验签的区别

  • RSA 是什么

  • API 版本兼容怎么处理

  • 限流(木桶、令牌桶)

  • OAuth 2 主要用在哪些场景下

  • JWT

  • PHP 中 json_encode(['key'=>123]); 与 return json_encode([]); 区别,会产生什么问题?如何解决

加分项

  • 了解常用语言特性,及不同场景适用性。

    • PHP VS Golang

    • PHP VS Python

    • PHP VS JAVA

  • 了解 PHP 扩展开发

  • 熟练掌握 C

声明

该资料不针对任何一家公司,对因该资料对您产生的影响概不负责,望知晓。

 

祝顺利

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网! 

 相关推荐:

php大牛分享:php代码编写的规范,总结的很全

对于PHP面向对象设计五大原则(SOLID)的总结

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

83

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

97

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

223

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

458

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

169

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

246

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

34

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
php面试题实战视频教程
php面试题实战视频教程

共12课时 | 4.3万人学习

最新PHP面试视频教程
最新PHP面试视频教程

共14课时 | 9.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号