此次的面试,不只仅但愿能开启一个新的征程,了解世界,也是一个发现自身不足的一个过程,借由此肯定未来的发展(学习)方向的一次机会。php
一份能让面试官了解你的简历,一份对于本身的自信,就出发吧 html
php是世界上最好的语言!前端
Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据能够保存在集群、数据库、文件中
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。
复制代码
PHP7在性能方面实现跨越式的提高,新的操做符,统一变量语法等等
参考[PHP7的文章](https://blog.csdn.net/u011957758/article/details/73320083)
复制代码
问了__dir__表明的含意,这个是回答文件所在的目录
参考[PHP 手册之魔术常量](http://php.net/manual/zh/language.constants.predefined.php)
复制代码
这算是常常会问到的一个题目了,经常使用的都记得,突然问到__invoke()就懵了
__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()
参考[PHP 手册之魔术方法](http://www.php.net/manual/zh/language.oop5.magic.php)
复制代码
只要能用代码实现出栈数据结构便可
参考[栈数据结构文章](http://www.jb51.net/article/130272.htm)
复制代码
只要能用代码实现出冒泡排序便可
参考[冒泡排序文章](http://www.jb51.net/article/24497.htm)
复制代码
只有最下面的两层结点度可以小于2,而且最下面一层的结点都集中在该层最左边的若干位置的二叉树才为彻底二叉树
而一棵深度为h且有 2^h-1个结点的二叉树即为满二叉树
参考[完美二叉树, 彻底二叉树和完满二叉树](https://blog.csdn.net/HaoDaWang/article/details/78065162)
复制代码
我从路由,中间件到控制器,数据访问,视图等层面上介绍了不一样
吐槽的话可能相对于一些项目,laravel有点‘重’
参考[tp3.2和tp5,以及laravel的区别](https://blog.csdn.net/qq1690194137/article/details/79794944)
复制代码
我回答没有,只是了解过
面试官就说他们的框架是本身在Discuz的基础上二次开发的框架,在他优秀的基础上把composer依赖管理也都引进blabla
参考[基于 Composer 的 PHP 模块化开发](https://zhuanlan.zhihu.com/p/27943241)
复制代码
结合项目说明模板,视图,控制器之间的关系和基本的构成
参考[MVC](https://baike.sogou.com/v25227.htm)
复制代码
在前端表单用户输入进行控制或限制
有后端传参数和数据时进行过滤等等
参考[常见的 CSRF、XSS、sql注入、DDOS流量攻击](https://blog.csdn.net/echo_laodong/article/details/79254552)
复制代码
个人解决办法先是前端控制有效请求,例如一分钟才正常请求一次
接着后端一样过虑无效请求,接着接操做放进队列中实现
有个面试官问,你这个队列是阻塞的吗,若是真的同时两个用户购买,两个用户等待完成,他们仍是用同一个线程完成,有没有考虑用其它方式实现
我说无,他就说能够用锁的机制,第二个等待第一个完成,一个接一个
参考[php高并发解决的一点思路](https://blog.csdn.net/mkbug/article/details/71455725)
相关的还有swoole扩展,能够了解下
复制代码
1. H5页面发起支付请求,请求生成支付订单
2. 调用统一下单API,生成预付单
3. 生成JSAPI页面调用的支付参数并签名
4. 微信浏览器自动调起支付JSAPI接口支付
5. 确认支付
6. 异步通知商户支付结果,商户收到通知返回确认信息
7. 返回支付结果,展现支付信息给用户
参考[微信支付时序图](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4)
复制代码
各个框架考虑的方面不同,这就按本身的理解写出相应的代码就好
复制代码
我是先给本身限定了一个B2C的商城,而后从数据表开始,接着简单介绍前端和后端实现逻辑
参考[PHP网上商城网站的设计与实现](http://www.docin.com/p-190062065.html)
复制代码
mysql优化基本是重中之重了,尤为考验技术mysql
InnoDB提供事务处理,行级锁,支持外键,支持多种行格式
MyISAM只支持表级锁,全文索引,堆表
参考[MyISAM与InnoDB区别](https://blog.csdn.net/xifeijian/article/details/20316775)
复制代码
原子性、一致性、隔离性、持久性
复制代码
未提交读、已提交读、可重复读、可串行化
参考[Innodb中的事务隔离级别和锁的关系](https://tech.meituan.com/innodb-lock.html)
复制代码
SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
复制代码
select 分数,类别=Case
WHEN 分数>=60 THEN '及格'
ELSE '不及格'
END
from 成绩表
复制代码
SELECT a.SNO ,a.SNAME
FROM student a
WHERE a.`SNO` NOT IN
( SELECT b.`SNO` FROM SC b
GROUP BY b.`SNO` HAVING COUNT(*) =
( SELECT COUNT(*) FROM course)
);
复制代码
select name from student where name='red'
union
select name from student where name='blue'
若是用or条件, myisam表能用到索引, innodb不行。
innodb用UNION替换OR (适用于索引列)
复制代码
查询缓存、EXPLAIN、(联合)索引、使用固定长度静态表
这问题都能写一本书了,参考[MySQL性能优化的最佳21条经验](https://blog.csdn.net/kaka1121/article/details/53395587)
复制代码
服务器怎么作防御nginx
仅开放有限端口,限制登陆IP,限制登陆账号
也是能够定一本书的问题,能够根据项目回答,参考[服务器防御知识点汇总](https://blog.csdn.net/Sasoritattoo/article/details/9324149)
复制代码
Get和Post有什么区别laravel
Get的参数包含在URL,GET请求会被浏览器主动cache,是url编码,有字符限制参数为ASCII字符
Post 经过request body传递参数,且有多种编码方式
复制代码
设置nginx时php脚本请求是让什么处理git
默认配置的是转发到FastCGI处理
复制代码
跟据项目来讲本身缓存的一些常常要用到的数据
复制代码
配置aof持久化,用默认的每秒刷新aof文件
参考[redis 的两种持久化方式及原理](https://blog.csdn.net/yinxiangbing/article/details/48627997)
复制代码
单线程(我居然回答是多线程,233)
参考[Redis单进程](http://www.cnblogs.com/syyong/p/6231326.html)
复制代码
能够用Redis官方集群方案,具体没有实践过,可能要花几周时间来完成
参考[Redis集群方案](https://www.zhihu.com/question/21419897)
复制代码
有用过git吗?当两我的提交了错误代码后,怎么解决面试
用过git提交代码,发生这种状况能够先将远程的代码git pull到本地,而后将冲突的代码或Git标记内容修改正确,而后从新提交代码
参考[git使用经验](https://zhuanlan.zhihu.com/p/22666153)
复制代码
机智回答,稍微提了一下公司或自身的事<del>钱少事多家远</del>
复制代码
对技术热情,积极解决问题,共同合做
参考[某种理想的团队](https://zhuanlan.zhihu.com/p/19968752)
复制代码
前端深刻,后端深刻,数据优化分析采集,服务器渗透blabla
复制代码
通常都会问公司有什么项目,技术架构,有无盈利等
复制代码
不一样公司技术栈不一样,关心的点也不一样,有点就会在队列的问题上问具体阻塞时的解决方案,有的更多关注项目效率,有的还会关注服务器搭建,有无本身搭建框架和对于流行框架的了解,过程当中也许就能找到本身想要的发展方向redis
5天9家7offer,感受还行,面试时大多公司都会根据简历上的项目进行详细的提问,. 面试时能看出技术上的广度(经历项目或技能多少),和技术的深度(数据优化,框架理解制做,服务器攻防渗透),但愿你们也可以随着项目的发展,不断实践学习技术,就酱。 \(•ㅂ•)/♥ 共勉~算法