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 ...
随机推荐
- Arthas开源项目
本文主要围绕着Arthas是什么.能做什么.安装和使用等三个方面内容来讲解,希望对初学者和对此有兴趣的朋友有帮助. 一. Arthas是什么 文档地址: https://alibaba.github. ...
- windows 环境下如何使用virtualenv python环境管理工具
1.安装工具 pip install virtualenv 2.新建项目文件夹并在文件夹内安装环境并命名为my_env,加入 virtualenv C:\Users\yxx\wp\my_env 3.激 ...
- WorldWind源码剖析系列:星球表面渲染类WorldSurfaceRenderer
星球表面渲染类WorldSurfaceRenderer描述如何渲染星球类(如地球)表面影像纹理.该类的类图如下. 星球类World包含的主要的字段.属性和方法如下: public const int ...
- 2018-2019-2 20175308实验一 《Java开发环境的熟悉》实验报告
2018-2019-2-20175308 实验一 <Java开发环境的熟悉>实验报告 一.实验内容及步骤 (一)使用JDk编译.运行简单的Java程序 输入cd Code命令进入Code目 ...
- javascript删除Cookie的正确方法(转载)
原来一直以为只要设置javascript的document.cookie对象就能简单的在浏览器端设置和删除cookie值,网上很多文章也是这么教的,但是最近发现简单的设置javascript的docu ...
- HBase启动报错:ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
今天进入hbase shell中输入命令报错:ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is no ...
- XSS Challenges练习及解答
一个偶然的机会在知道创宇的技能表里看到了一个练习XSS的网站http://xss-quiz.int21h.jp,正好想研究这个,于是试着做了一下. 第一.二题是最简单的,直接在搜索框中输入以下代码就成 ...
- [清华集训2015 Day1]主旋律-[状压dp+容斥]
Description Solution f[i]表示状态i所代表的点构成的强连通图方案数. g[i]表示状态i所代表的的点形成奇数个强连通图的方案数-偶数个强连通图的方案数. g是用来容斥的. 先用 ...
- vim打开多窗口、多文件之间的切换
打开多个文件: 一.vim还没有启动的时候: 1.在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动 输入 :e file 可以再打开一 ...
- 【Java框架型项目从入门到装逼】第十一节 用户新增之把数据传递到后台
让我们继续来做"主线任务",这一节,我们来做具体的用户新增功能.首先,为了简单起见,我把主页面改了一些,改的是列表那一块.删去了一些字段,和数据库表对应一致: 现在,我们要实现一个 ...