php面试问答
结合实际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面试问答的更多相关文章
- JAVA多线程和并发基础面试问答(转载)
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...
- [转] JAVA多线程和并发基础面试问答
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...
- JAVA多线程和并发基础面试问答
转载: JAVA多线程和并发基础面试问答 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对 ...
- 【多线程】JAVA多线程和并发基础面试问答(转载)
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...
- 28个MongoDB NoSQL数据库的面试问答
MongoDB是目前最好的面向文档的免费开源NoSQL数据库.如果你正准备参加MongoDB NoSQL数据库的技术面试,你最好看看下面的MongoDB NoSQL面试问答.这些MongoDB NoS ...
- .NET面试问答集锦
程序员级别鉴定书(.NET面试问答集锦) 提供避免元素命名冲突的方法 DOM适合的使用场景是什么?是否有尺寸限制? DOM是一种与浏览器,平台,语言无关的接口,使你可以访问页面其他的标准组件. DOM ...
- C语言面试问答5
12个滑稽的C语言面试问答——<12个有趣的C语言问答>评析(5) 前文链接:http://www.cnblogs.com/pmer/archive/2013/09/17/3327262. ...
- C语言面试问答(3)
12个滑稽的C语言面试问答——<12个有趣的C语言问答>评析(3) 前文链接:http://www.cnblogs.com/pmer/p/3322429.html 5,atexit wit ...
- (转)JAVA多线程和并发基础面试问答
JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-ans ...
- .net面试问答
转载自:https://www.cnblogs.com/dingfangbo/p/5768991.html .net面试问答(大汇总) 原文://http://blog.csdn.net/weny ...
随机推荐
- [转]OpenCV2.4.12 开启OpenGL启用三维可视化支持
OpenCV默认情况下是不支持OpenGL的,如果要使OpenCV支持OpenGL,则需要重编译,具体步骤如下: 注意事项:从The OpenCV Reference ManualOpenCV参考手册 ...
- MFC单文档视图拆分窗口和相关链接
第一步:准备2个视图类(如CTViewOne, CTViewTwo) 第二步:在CMainFrame类的头文件中添加数据成员变量: //MainFrm.h protected: CSplitterWn ...
- STL 1–迭代器std::begin()和std::end()使用
迭代器是一个行为类似于指针的模板类对象.只需要迭代器iter指向一个有效对象,就可以通过使用*iter解引用的方式来获取一个对象的引用.通常会使用一对迭代器来定义一段元素,可以是任意支持迭代器对象的元 ...
- 用BCP从SQL Server 数据库中导出Excel文件
BCP(Bulk Copy Program)是一种简单高效的数据传输方式在SQL Server中,其他数据传输方式还有SSIS和DTS. 这个程序的主要功能是从数据库中查询Job中指定step的执行信 ...
- A - Zebras
Oleg writes down the history of the days he lived. For each day he decides if it was good or bad. Ol ...
- scp 免密登录ssh-copy-id 如何使用非22端口 + rsync 同步远程机器的文件到本地
其中:id_rsa为私钥文件,id_rsa.pub为公钥文件 ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 2122 root@IP " 我的:s ...
- jQuery上传文件
1.引入资源 <script src="/yami/backend/backres/js/jquery.min.js"></script> <scri ...
- BZOJ2427: [HAOI2010]软件安装 tarjan+树形背包
分析: 一开始我以为是裸的树形背包...之后被告知这东西...可能有环...什么!有环! 有环就搞掉就就可以了...tarjan缩点...建图记得建立从i到d[i]之后跑tarjan,因为这样才能判断 ...
- 大数据入门第二十二天——spark(一)入门与安装
一.概述 1.什么是spark 从官网http://spark.apache.org/可以得知: Apache Spark™ is a fast and general engine for larg ...
- Sqlite 快速批量插入数据 测试
public static int insertDbBatch() { string sql = ""; SQLiteConnection conn = new SQLiteCon ...