对于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(有什么用,什么时候需要)
重点理解
type
、rows
、key
CRUD
JOIN、LEFT JOIN 、RIGHT JOIN、INNER JOIN
UNION
GROUP BY + COUNT + WHERE 组合案例
常用 MySQL 函数,如:now()、md5()、concat()、uuid()等
1:1
、1:n
、n: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 目的、原理
分片
高可用集群
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面试知识点的小结的更多相关文章
- 知名互联网公司校招 Java 开发岗面试知识点解析
天之道,损有余而补不足,是故虚胜实,不足胜有余. 本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几 ...
- Java 面试知识点解析(一)——基础知识篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(二)——高并发编程篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java 面试知识点解析(三)——JVM篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java开发岗面试知识点解析
本文作者参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 高并发编 ...
- Java 开发岗面试知识点
本文作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向.在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Java 常见集合 ...
- [ Java面试题 ]Java 开发岗面试知识点解析
如背景中介绍,作者在一年之内参加过多场面试,应聘岗位均为 Java 开发方向. 在不断的面试中,分类总结了 Java 开发岗位面试中的一些知识点. 主要包括以下几个部分: Java 基础知识点 Jav ...
- 前端开发面试知识点大纲--摘自jackyWHJ
前端开发面试知识点大纲:HTML&CSS: 对Web标准的理解.浏览器内核差异.兼容性.hack.CSS基本功:布局.盒子模型.选择器优先级及使用.HTML5.CSS3.移动端适应 Ja ...
- Java---常用基础面试知识点
综合网上的一点资源,给大家整理了一些Java常用的基础面试知识点,希望能帮助到刚开始学习或正在学习的学员. 1.抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方 ...
随机推荐
- c# 判断时间是否在 某一时间段内
protected bool getTimeSpan(string timeStr) { //判断当前时间是否在工作时间段内 string _strWorkingDayAM = "08:30 ...
- bzoj5102: [POI2018]Prawnicy
Description 定义一个区间(l,r)的长度为r-l,空区间的长度为0. 给定数轴上n个区间,请选择其中恰好k个区间,使得交集的长度最大. Input 第一行包含两个正整数n,k(1<= ...
- windows下apache httpd2.4.26集群完整搭建例子:下载、启动、tomcat集群例子
第一部分——下载 1.1: 百度搜索apache httpd关键字,第一个链接既是官方下载地址.如果这一步不会,此篇文章不适合你阅读,请自行停止. 1.2:进入官网http://httpd.apach ...
- 微信小程序如何设置服务器配置
最近微信小程序在it界火了起来,公司也要求我们开始接触微信小程序,废话不多说直接从配置微信小程序开始 1,首先,登录 https://mp.weixin.qq.com,(这里默认你已经获取到微信小程序 ...
- [UE4]RichTextBlock
RichTextBlock:富文本 一.新建一个名为“TestRichTextBlock_0”的UserWidget,并添加名为RichTextBlock_0的RichTextBlock控件,并设置T ...
- 刘志梅201771010115.《面向对象程序设计(java)》第六周学习总结
实验六 继承定义与使用 实验时间 2018-9-28 1.实验目的与要求 (1) 继承的定义:用已有类来构建新类的一种机制.当定义了一个新类继承了一个类时,这个新类就继承了这个类的方法和域,同时在新类 ...
- Activiti流程设计工具
在Actitivi工程的src/main/resources新建一个文件夹diagrams 然后右键,创建一个activiti Diagram 取名为helloWorld后finish 中间区域,是我 ...
- WordPress版微信小程序2.1.5版发布
WordPress版微信小程序功能已经基本完善,利用这套程序,搭配WordPress提供的rest api,WordPress网站的站长可以快速搭建属于自己的网站微信小程序 . WordPress版微 ...
- LINUX 中实现逻辑卷、自动挂载
实验项目: 准备3块10G的空闲分区,将类型ID修改为8e(LVM) 使用其中2块分区组建名为myvg的卷组,查看此卷组信息 先检查有哪些物理卷 讲两块空闲分区转换成物理卷 再检查有哪些物理卷,查看其 ...
- Pycharm:使用笔记
1.快捷键笔记 CTRL+D:复制当前行 CTRL+/:注释选中行 CTRL+ALT+L:自动format,自动进行标准格式化 ALT + 7:查看当前文件的类和方法概览 Ctrl + Y 删除 ...