2020春招PHP面试题(附答案)

PHP

一. 基础

1, session和cookie的区别

  • Session是在服务端保存的一个数据结构,用来跟踪用户 的状态,这个数据可以保存在集群、数据库、文件中

  • 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, 冒泡排序

只要能用代码实现出冒泡排序即可

3, 完全二叉树和满二叉树的区别

只有最下面的两层结点度能够小于2,并且最下面一层的结点都集中在该层最左边的 若干位置的二叉树才为完全二叉树
而一棵深度为h且有 2^h-1个结点的二叉树即为 满二叉树

三. 架构相关

1, Laravel和ThinkPHP有什么区别,对于laravel有什么要吐槽的

我从路由,中间件到控制器,数据访问,视图等层面上介绍了不同

吐槽的话可能相对于一些项目,laravel有点‘重’

2, 有用composer发布过自己的包吗? (基于 Composer 的 PHP 模块化开发)

我回答没有,只是了解过

面试官就说他们的框架是自己在 Discuz的基础上二次开发的框架,在他优秀的基础上把composer依赖管理也都引进blabla

3, 谈谈对于MVC的理解

结合项目说明模板,视图,控制器之间的关系和基本的构成

四. 防护

1, XSS 跨站脚本攻击

2, DDOS 流量攻击

3, CSRF 跨站请求伪造攻击

4, SQL注入

在前端表单用户输入进行控制或限制

有后端传参数和数据时进行过滤等等

五. 项目

1, 在项目中如何解决并发的问题

我的解决办法先是前端控制有效请求,例如一分钟才正常请求一次
接着 后端同样过虑无效请求,接着接操作放进队列中实现

有个面试官问,你这个队列是阻塞的吗,如果真的同时两个用户购买,两个用户等待 完成,他们还是用同一个线程完成,有没有考虑 用其它方式实现
我说无,他就说可 以用锁的机制,第二个等待第一个完成,一个接一个

2, 微信支付具体实现流程

1)H5页面发起支付请求,请求生成支付订单
2)调用统一下单API,生成预付单
3)生成JSAPI页面调用的支付参数并签名
4)微信浏览器自动调起支付 JSAPI接口支付
5)确认支付
6)异步通 知商户支付结果,商户收到通知返回确认信息
7)返回支付结果,展 示支付信息给用户

3, 简单实现登录注册功能

各个框架考虑的方面不一样,这就按自己的理解写出相应的代码就好

4, 如何设计一个商城

我是先给自己限定了一个B2C的商城,然后从数据表开始,接着简单 介绍前端和后端实现逻辑

MYSQL

mysql优化基本是重中之重了,尤其考验技术

一. 基础

1, InnoDB和MyISAM有什么区别

InnoDB提供事务处理,行级锁,支持外键,支持多种行格式
MyISAM只支持表级锁,全文索引,堆表

2, 事务有哪几个特性

原子性、一致性、隔离性、持久性

3, 事务的隔离级别

未提交读、已提交读、可重复读、可串行化

4, 有个表字段的O_Id,OrderDate,OrderPrice,Customer这几个,我们希望查找订单总 金额少于 2000 的客户

    SELECT Customer,SUM(OrderPrice) FROM

Orders

    GROUP BY Customer

    HAVING SUM(OrderPrice)<2000

5, 查询学生表的数据,大于六十的为及格,反之不及格

select 分数,类别=Case
WHEN 分数 >=60 THEN '及格'
ELSE '不及格 '
END
from 成绩表

6, 查询没有学完所有课程的学生学号、姓名

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)

    );

二. 优化

1, "select * from student where name='red'","select * from student where name='blue'",优化语句

    select name from student where

name='red'
    union
    select

name from student where name='blue'

如果用or条件, myisam表能用到索引, innodb不行。
innodb用UNION替换OR (适用于索引列)

2, 你一般都会怎么优化数据库

查询缓存、EXPLAIN、(联合)索引、使用固定长度静态表

服务器

一. 防护

服务器怎么做防护

仅开放有限端口,限制登录IP,限制登录帐号

也是可以定一本书的问题,可以根据项目回答

二. 协议

Get和Post有什么区别

Get的参数包含在URL,GET请求会被浏览器主动cache,是url编码, 有字符限制参数为ASCII字符

Post 通过request body传递参数,且 有多种编码方式

三. NginX

设置nginx时php脚本请求是让什么处理

默认配置的是转发到FastCGI处理

四. Redis

1、你用redis来缓存什么数据

跟据项目来说自己缓存的一些经常要用到的数据

2、Redis怎么做持久化,配置哪种刷新频率

配置aof持久化,用默认的每秒刷新aof文件

3、Redis是多线程吗

单线程(我竟然回答是多线程,233)

4、Redis怎么配置一主多从,要多久

可以用Redis官方集群方案,具体没有实践过,可能要花几周时间来 完成

五. 代码管理

有用过git吗?当两个人提交了错误代码后,怎么解决

用过git提交代码,发生这种情况可以先将远程的代码git pull到本 地,然后将冲突的代码或Git标记内容修改正确,然后重新提交代码

其它

1.为什么离职

机智回答,稍微提了一下公司或自身的事钱少事多家远

2.你理想的团队

对技术热情,积极解决问题,共同合作

3.职业规划

前端深入,后端深入,数据优化分析采集,服务器渗透blabla

4.想问的问题

一般都会问公司有什么项目,技术架构,有无盈利等

不同公司技术栈不同,关心的点也不同,有点就会在队列的问题上问具体阻塞时的解决方案 ,有的更多关注项目效率,有的还会关注服务器搭建,有无自己搭建框架和对于流行框架的了解 ,过程中也许就能找到自己想要的发展方向

后记

5天9家7offer,感觉还行,面试时大多公司都会根据简历上的项目进行详细的提问,面试时能看出技术上的广度(经历项目或技能多少),和技术的深度(数据优化,框架理解制作,服务器攻防渗透),希望大家也能够随着项目的发展,不断实践学习技术,就酱。 (•ㅂ•)/♥ 共勉 ~

点关注,不迷路

好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。之前说过,PHP方面的技术点很多,也是因为太多了,实在是写不过来,写过来了大家也不会看的太多,所以我这里把它整理成了PDF和文档,如果有需要的可以

点击进入暗号: PHP+「平台」

在这里插入图片描述
在这里插入图片描述

更多学习内容可以访问【对标大厂】精品PHP架构师教程目录大全,只要你能看完保证薪资上升一个台阶(持续更新)

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的 PHP技术交流群

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,295评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,928评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,682评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,209评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,237评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,965评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,586评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,487评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,016评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,136评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,271评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,948评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,619评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,139评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,252评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,598评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,267评论 2 358

推荐阅读更多精彩内容