PHP1.基础1、session和cookie的区别Session是一种保存在服务器端的数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库1.文件中的cookie是客户端保存用户信息的一种机制。用来记录用户的一些信息,也是Session的一种实现方式。2.你用过PHP7吗?知道PHP7在性能上实现了哪些新特性的跨越式提升,新的运算符,统一的变量语法等等3.魔法变量问__dir__的意思,答案文件就是这个目录4、魔法方法这是一个经常被问到的问题,我记住了常用的。当我问起__invoke()__construct(),__destruct(),__call(),__callStatic(),__get(),__set(),__isset(),__unset(),__sleep(),__wakeup()时,我突然感到困惑、__toString()、__invoke()、__set_state()、__clone()和__debugInfo()数据结构与算法1、只要能用代码实现栈数据结构,就可以实现栈的数据结构。2.冒泡排序只需要代码就可以实现。2、最底层的节点都集中在本层最左边位置的二叉树是完全二叉树,深度为h且有2^h-1个节点的二叉树是满二叉树3.架构相关1、Laravel和ThinkPHP有什么区别,吐槽laravel的地方我介绍了从路由、中间件到控制器、数据访问、视图等不同的方面,吐槽的话laravel可能有点重与一些项目相比'2,你有没有用composer发布过自己的包?(基于Composer的PHP模块化开发)我回答没有。刚了解到面试官,说他们的框架是基于Discuz的二次开发框架。基于优秀的基础,blabla3也引入了composer依赖管理,结合项目描述模板、视图、controller和基本组合的关系谈谈对MVC的理解4.防护1、XSS跨站脚本攻击2、DDOS流量攻击3、CSRF跨站请求伪造攻击4、SQL注入控制前端表单的用户输入或在后端传递参数和数据时限制过滤等5.第1项,项目中的并发问题怎么解决我的解决方法方法是先在前端控制有效请求,比如每分钟只有一个正常请求,然后后端也过滤掉无效请求,然后把操作放到队列来实现。面试官问,你的队列堵了吗?如果同时有两个用户购买,两个用户等待完成,还是用同一个线程完成,有没有考虑过用其他方法我说不行,他说可以用锁机制,第二个等第一个完成,一个接一个2、微信支付的具体实现流程1)H5页面发起支付请求,请求到生成支付订单2)调用统一OrderAPI,生成预付账单3)生成JSAPI页面调用的支付参数并签名4)微信浏览器自动调用支付JSAPI接口支付5)确认支付6)异步通知商户支付结果,商户收到通知后返回确认信息7)返回支付结果,并向用户展示支付信息。3.登录注册功能的简单实现。不同的框架考虑的方面不同,所以根据自己的理解编写相应的代码即可。4、如何设计商城我首先给自己设限我搭建了一个B2C商城,然后从数据表入手,然后简单介绍一下前后端实现逻辑。MYSQLmysql优化基本上是重中之重,尤其是技术的考验1.基础1、InnoDB和MyISAM有什么区别InnoDB提供了事务处理、行级锁、外键、多行格式MyISAM只支持表级锁、全文索引、堆表2、事务的特点是什么?原子性、一致性、隔离、持久化3、事务的隔离级别未提交读、提交读、可重复读、可序列化4、有表字段O_Id、OrderDate、OrderPrice、Customer,我们要找总订单金额少的客户than2000SELECTCustomer,SUM(OrderPrice)FROMOrdersGROUPBYCustomerHAVINGSUM(OrderPrice)<20005,查询学生表的数据,如果大于60则为通过,否则为失败selectScore,Category=CaseWHENScore>=60THEN'Pass'ELSE'Fail'ENDfromResulttable6,查询未完成所有课程的学生的学号和姓名SELECTa.SNO,a.SNAMEFROMstudentaWHEREa.`SNO`NOTIN(SELECTb.`SNO`FROMSCbGROUPBYb.`SNO`HAVINGCOUNT(*)=(SELECTCOUNT(*)FROMcourse));二。优化1、"selectfromstudentwherename='red'","selectfromstudentwherename='blue'",优化语句selectnamefromstudentwherename='red'unionselectnamefromstudentwherename='blue'如果使用or条件,myisam表可以使用索引,innodb不能Innodb用UNION代替OR(适用于索引列)2、一般如何优化数据库查询缓存、EXPLAIN、(联合)索引、使用定长静态表服务器1、如何保护服务器?保护只开放有限的端口,限制登录IP,限制登录账号也是一本书可以设置的问题。你可以根据项目来回答。2.Get和Post协议有什么区别?Get的参数包含在URL中,GET请求会被浏览器主动缓存。对于ASCII字符Post,通过请求体传递参数,有多种编码方式。3、NginX设置nginx时,PHP脚本请求流程是怎样的?默认配置被转发给FastCGI进行处理。对于项目,我缓存的一些常用数据。2、如何让Redis持久化,其中refreshfrequencytoconfigure配置aof持久化,默认每秒刷新一次aof文件。答案是多线程,233)4、Redis如何配置一主多从,使用Redis官方的集群方案需要多长时间?当两个人提交错误的代码时,如何解决使用git提交代码的问题,如果出现这种情况,可以先将远程代码git拉到本地,然后修正冲突的代码或者git标记的内容,然后重新提交代码Other1。你为什么离职?明智地回答,并提及一些有关公司或您自己的事情。钱少了,事情就远了。2、你理想中的团队对技术充满热情,积极解决问题,通力合作。分析采集,服务器渗透blabla4。你要问的问题一般是公司有什么项目,技术架构,是否盈利。解决方案,有的更注重项目效率,有的还注重服务器搭建,是否自己搭建过框架,了解流行的框架,或许能在过程中找到自己想要的发展方向后记5天9公司7offer,感觉还行。面试的时候,大部分公司都会根据简历上的项目详细提问。面试的时候可以看到技术的广度(经历过多少个项目或者技能),技术的深度(数据优化,框架理解制作,服务器攻防渗透),希望大家继续练习并随着项目的发展学习技术。(???)/?互相鼓励~关注我,大家不要迷路,以上就是本文的全部内容,能看到的都是人才。前面说了PHP的技术点很多,也是因为太多了,写的太多了,写完了也不会看太多,所以我这里整理成了PDF和文档,有需要的可以点击进入秘籍:PHP+「平台」更多学习内容可以访问【比大厂】优质PHP架构师教程目录,只要会看,薪资高会更上一层楼(持续更新)。以上内容希望对大家有所帮助,很多PHPer在进阶的时候总会遇到一些问题和瓶颈。业务代码写多了就没有方向感。架构、高扩展、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等进阶知识点级别的干货,可以免费分享给大家,需要的话可以加入我的PHP技术交流群
