结合实际PHP面试,汇总自己遇到的问题,以及网上其他人遇到的问题,尝试提供简洁准确的答案

包含MySQL、Redis、Web、安全、网络协议、PHP、服务器、业务设计、线上故障、个人简历、自我介绍、离职原因、职业规划、准备问题等部分

GitHub: https://github.com/colinlet/P...

感觉不错的话,欢迎 Star~~

一般面试流程

目录 - 阅读

MySQL

  • MySQL 体系结构
  • 字段类型
  • char 和 varchar 数据类型区别
  • 存储引擎
  • 常见索引
  • 聚族索引和非聚族索引的区别
  • 事务机制
  • BTree 与 BTree-/BTree+ 索引原理
  • 参考资料

Redis

  • Redis 主要特点
  • Redis 数据类型
  • 跳跃表与 Redis
  • 一致性哈希
  • 分布式锁
  • 参考资料

Web

  • JavaScript事件的三个阶段
  • 闭包原理及应用
  • 跨域
  • JSONP 原理
  • CSS 选择器的优先级
  • CSS 盒子模型
  • CSS 清除浮动
  • 相对定位 relative、浮动 float、绝对定位 absolute 区别
  • VUE 双向绑定原理
  • 性能优化
  • 参考资料

安全问题

  • CSRF 攻击
  • XSS 攻击
  • SQL 注入
  • IP 地址能被伪造吗
  • include 请求参数
  • md5 逆向原理
  • DOS 攻击
  • 参考资料

网络协议

  • UDP 的主要特点
  • TCP 握手三次,断开四次,TIME-WAIT
  • socket
  • HTTP 协议
  • HTTPS 通信原理
  • websocket 协议
  • GET 与 POST 请求方式区别
  • RESTful API
  • 参考资料

PHP

  • echo、print、print_r、var_dump的区别
  • 超全局变量
  • PHP 支持回调的函数,实现一个
  • 发起 HTTP 请求有哪几种方式,它们有何区别
  • 对象关系映射/ORM(Object Relational Mapping)
  • MVC 的理解
  • 类的静态调用和实例化调用
  • 常见 PHP 框架特点
  • 设计模式(design pattern)
  • 工厂方法模式与抽象工厂模式区别
  • base64 编码原理
  • ip2long 实现
  • 代码执行过程
  • 弱类型变量如何实现
  • 垃圾回收机制
  • 进程间通信方式
  • 链式调用实现
  • 多进程同时写一个文件
  • PHP 拓展
  • PHP7 新特性
  • PHP7 底层优化
  • 构造函数和析构函数
  • PHP 不实例化调用方法
  • 参考资料

服务器

  • 进程、线程、协程区别
  • Linux 进程
  • 反向代理
  • 负载均衡
  • nginx 中 fastcgi_pass 监听,unix socket 和 tcp socket 的区别
  • 消息队列
  • 参考资料

业务设计

  • 网易盖楼
  • 秒杀设计
  • 消息队列
  • 共享 SESSION
  • 下单后30分钟未支付取消订单
  • IP对应省市效率尽可能高
  • 详细描述输入地址到打开网页过程
  • 参考资料

线上故障

  • 客户端热更新失败
  • Redis 实例 used_memory 达到80%
  • 游戏任务完成了进度未更新
  • 测试服 HTTP 请求未响应
  • 游戏账号被盗

个人简历

自我介绍

离职原因

  • 跳槽频繁
  • 这次换工作原因

职业规划

准备问题

  • 工作挑战大不大?
  • 项目开发是否写测试用例,项目上线先是否会进行压力测试
  • 业务前景如何?
  • 技术氛围如何?
  • 根据这次面试,对个人进行评价,帮助成长
  • 融资计划
  • 是否有加班费/调休,公司福利,社保公积金缴纳基数

声明

本资料仅供参考,不保证正确性

作者:凌枫 Email:colinlets@gmail.com 链接:https://github.com/colinlet/P...

关键字

php面试、php面试题、php面试题2019

php面试问答的更多相关文章

  1. JAVA多线程和并发基础面试问答(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  2. [转] JAVA多线程和并发基础面试问答

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  3. JAVA多线程和并发基础面试问答

    转载: JAVA多线程和并发基础面试问答 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对 ...

  4. 【多线程】JAVA多线程和并发基础面试问答(转载)

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  5. 28个MongoDB NoSQL数据库的面试问答

    MongoDB是目前最好的面向文档的免费开源NoSQL数据库.如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答.这些MongoDB NoS ...

  6. .NET面试问答集锦

    程序员级别鉴定书(.NET面试问答集锦) 提供避免元素命名冲突的方法 DOM适合的使用场景是什么?是否有尺寸限制? DOM是一种与浏览器,平台,语言无关的接口,使你可以访问页面其他的标准组件. DOM ...

  7. C语言面试问答5

    12个滑稽的C语言面试问答——<12个有趣的C语言问答>评析(5) 前文链接:http://www.cnblogs.com/pmer/archive/2013/09/17/3327262. ...

  8. C语言面试问答(3)

    12个滑稽的C语言面试问答——<12个有趣的C语言问答>评析(3) 前文链接:http://www.cnblogs.com/pmer/p/3322429.html 5,atexit wit ...

  9. (转)JAVA多线程和并发基础面试问答

    JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...

  10. .net面试问答

    转载自:https://www.cnblogs.com/dingfangbo/p/5768991.html .net面试问答(大汇总)   原文://http://blog.csdn.net/weny ...

随机推荐

  1. day1-课堂代码

    # # a = 1 # b = a # print(b) # # c = a + 1 # print(c) # # def add(x,y): # return x+y # # d = add(3,5 ...

  2. 静态工厂方法和实例工厂方法及普通的bean

    容纳你的bean  bean工厂:最简单的容器,提供了基础的依赖注入支持.创建各种类型的Bean.  应用上下文(ApplicationContext):建立在bean工厂基础之上,提供系统架构服务. ...

  3. always on 集群

    准备工作 1.  四台已安装windows server 2008 r2 系统的虚拟机,配置如下: CPU : 1核 MEMORY : 2GB DISK : 40GB(未分区) NetAdapter ...

  4. linux下安装redis安装使用

    1.下载redis 下载地址:http://redis.io/download,下载最新稳定版本 2.解压redis 1)  cd redis-x.x.x 2) make 3.启动redis 1) c ...

  5. Java面试题,Java三大特性之一——多态的理解

    首先我们知道Java是一门面向对象的语言 面向对象三大特性,封装.继承.多态. 封装.继承.多态 ↓ 无论是学习路线,还是众人的口语习惯,都是按照这个这样进行排序,这是有原因的.因为封装好了才能继承, ...

  6. UCOSII笔记---信号量、邮箱、消息队列、信号量集、软件定时器

    一.接收邮箱函数的参数:timeout表示的是滴答定时器的节拍数,比如设定5ms为一个节拍,超时为100ms,则timeout=20. void *OSMboxPend (OS_EVENT *peve ...

  7. [CF1059E]Split the Tree[贪心+树上倍增]

    题意 给定 \(n\) 个节点的树,点有点权 \(w\) ,划分成多条儿子到祖先的链,要求每条链点数不超过 \(L\) ,和不超过 \(S\),求最少划分成几条链. \(n\leq 10^5\) . ...

  8. Js_获取浏览器等高宽

     IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document. ...

  9. Python对Selenium调用浏览器进行封装包括启用无头浏览器,及对应的浏览器配置文件

    """ 获取浏览器 打开本地浏览器 打开远程浏览器 关闭浏览器 打开网址 最大化 最小化 标题 url 刷新 Python对Selenium封装浏览器调用 ------b ...

  10. 记录Jenkins+gitlab+maven

    摘要 昨天抽空将jenkins+gitlab(git)+maven整合了一下,再次记录一下以防下次再去查找省的麻烦. git.maven.java配置 启动jenkins之后进入系统管理里面的Glob ...