php面试主要有这几点: 项目经验,以及对项目开发的理解(如何下手一个新项目) php语言的掌握程度 数据库相关知识 nginx相关使用 缓存方面知识(redis、memcached) 高并发处理经验以及手段 linux基本操作和理解 git基本操作和理解 框架的使用经验( 一般为主流框架,如 laravel 和 tp5 ) 网络安全相关问题 攻击以及防护相关问题 其他一些杂七杂八的东西,比如 composer 、psr4标准等 上面几点是大概率会被问到的问题,也几乎只会问到这些范围内的问题,我简单展开下每个问题,但是具体的进阶,各位需要面试的话自己看。 1.他其实就像想知道你是否熟悉项目开发流程以及有独立完成项目的能力,或者有足够的开发经验。 项目开发流程:产品需求分析 -》产品原型分析 -》设计表结构 -》选择开发框架 -》设计业务模块 -》定义开发接口 -》 开始搬砖。 2.php的基础掌握。我们知道php是脚本语言,那肯定会问一些脚本语言的问题,比如脚本语言和编译语言的区别,什么是脚本语言,他的执行方式,或者更牛逼一点会问PHP语言的执行过程,其实就是想问你了解不了解 opcode。 虽然我们大多数phper,包括我,大部分时间都是在面向过程编程,因为框架把面向对象的事情都做了,但是面试官还是会装逼的问一下你,是否了解面向对象编程(静态方法、变量权限、抽象类、接口、继承、克隆、魔术方法等)。 命名空间、正则匹配的一些基本知识也是会问一下的。 还有什么单引号双引号区别,get和post请求、session原理; 3.没什么好说的,该看的都要看(三番式、索引类型以及特点、查询优化、事务处理、主从同步、多库联合、锁处理); 4.ngixn的话,只要会简单的配置以及反向代理,一般就ok了; 5.redis 有哪几种数据类型,分别是什么,还有高并发情况下的的雪崩问题如何解决(解决方案是 加锁 )以及redis持久化原理(快照(RDB文件)和追加式文件(AOF文件)); 6.事实上,我所在的几家公司,高并发的场景都很少,我相信不部分公司其实并没有太高的并发的情况,但是这却是个必问的问题,可能觉得如果不问不够专业吧。 什么是高并发?它通常是指,通过设计保证系统能够同时并行处理很多请求。 **高并发相关指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。** 我们知道php是单线程的,现在由于php-fpm的加持,fpm帮我们维护了一个线程池,负责php线程的调度执行,所以每一段程序执行的效率,直接影响的高并发的指标。通常的效率瓶颈有这么几种,复杂的算法、大的循环、数据库慢查询等。 现实情况中,比较多出问题是出在数据库这边,通常的解决方法是,主从同步,分布式部署以及对数据进行缓存。 如果流量太大,一台服务器不够用也要进行多台服务器分布式部署。这里涉及负载均衡的配置,以及nginx几种负载均衡的算法。 7.不说什么了,天天用就会了(ls、top、ps、du、df 。。。。)。 8.git的基本使用方法,没什么说的。 9.现在的主流框架越来越像,tp5的涉及理念明显是借鉴了laravel啊,什么依赖注入、容器、合约、服务提供者、门面、中间件、restful api 等等,了解一下,用一用就好了。 10\. https(http+ssl)、非对称加密(密文、私钥、公钥)、加密算法,这些在开发支付时需要用的到。 11.cc攻击(ddos的一种)、ddos攻击,防护方法 : cc:服务器垂直扩展和水平扩容、 数据缓存、 页面静态化、 用户级别的调用频率限制、 IP限制 ddos: 砸钱!(买防护、买带宽) 12.想什么composer 、 psr4在框架部分因该会问到,主要是想问php如何引入第三的程序包(这也是我为什么越来越不喜欢不喜欢php的原因,引个包命名空间烦死了,当然了,php是世界上最好的语言!); 作者:MEMO社区 链接:[https://www.jianshu.com/p/15b5f9d69984](https://www.jianshu.com/p/15b5f9d69984) 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。