达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心 达内广州C++学院|c++培训|广州达内科技C++/C#培训|.NET培训|IT培训|达内广州岗顶中心
PHP互联网工程师
 当前位置:主页 > 高端课程 > PHP互联网工程师 >

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

时间:2019-06-05  来源:未知  作者:广州达内培训

这次的面试,不仅仅希望能开启一个新的征程,了解世界,也是一个发现自身不足的一个过程,借由此确定将来的发展(学习)方向的一次机会。(后附:面试知识点思维导图)

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. 为什么离职

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

2. 你理想的团队

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

3. 职业规划

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

4. 想问的问题

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

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

后记

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

后附:面试知识点思维导图

7.png


上一篇:PHP早已不是十年前的鸟样
下一篇:MemCache缓存与Session(知识汇总)

友情链接:
  • 全球最大晶圆代工半导体制造厂,台积电斥资订购艾斯摩尔机器设备
  • 英特尔依然是那个英特尔,且看英特尔的城防体系
  • 支持双 DRAM 内存接口,慧荣企业级 SSD 主控方案披露
  • 在全球被反垄断罚款,冤!高通到底哪里得罪了欧盟?
  • 强强联合!万业、微电子所和芯鑫共同打造全新半导体设备
  • 复旦大学校长称:对于集成电路产业发展,大学应该主动担当
  • 技术再升级!无锡中科芯攻克晶圆级再布线及晶圆级凸点制备关键技
  • 聚力!万业企业设立集成电路装备集团,提供自主可控设备
  • 德州仪器C2000微控制器增强连通性和控制性
  • 英特尔打出降价策略,以免被竞争对手 AMD 打败?
  • 贸易摩擦的闹剧没有赢家,苹果有勇气离开中国吗?
  • 图像信号与视觉处理器的发展趋势
  • 真干快消品定位方案班(第二期)火热开班
  • Java集合 ArrayList原理及使用
  • TDD(测试驱动开发)死了吗?
  • JAVA基础之XML相关
  • javaweb项目搭建ehcache缓存系统
  • 每日一码——字符串统计
  • 一篇文章帮你彻底搞清楚“I/O多路复用”和“异步I/O”的前世今生
  • 九:模板方法模式
  • 十二:命令模式(人员解耦和)
  • Java 转PPT为图片、PDF、SVG、XPS、ODP以及PPT和PPTX互转
  • SpringCloud学习(SPRINGCLOUD微服务实战)一
  • 记一次微信网页授权后获取用户信息并重定向
  • 速途新营销五点实战洞察解码“品效合一”
  • 十一:外观模式详解(Service,action与dao)
  • 手把手教你学会 基于JWT的单点登录
  • mysql锁机制总结,以及优化建议
  • 解决多个版本jar包冲突【jar内包名重命名】
  • 中国首张5G终端电信设备进网许可证 华为Mate 20 X 5G版入网
  • RPC之Thrift
  • 高级Java工程师必备 ----
  • 天猫618期间实物支付GMV增长38.5%
  • 换季了,老板你的库存处理好了吗?
  • 从“618”大数据看中国消费新活力
  • 小米生态链:贵在格局感与收放度
  • CODING 2.0 企业级持续交付解决方案
  • 老铁奇趴“新京济” 快手*京东618战报出炉
  • 中小企业新媒体运营基本技能
  • 上汽大通房车再度携手LINE FRIENDS 魔都巡游顺利开启
  • 华为高端手机国内市场份额超苹果夺得榜首
  • 中国智能制造分析报告
  • iPlus艾加营销助力腾讯广告牵手吴晓波 推进商业IP变现
  • 2019世界新能源汽车大会7月1日将在海南举行
  • 区域酒企如何转型突围
  • 时时彩论坛
  • 五星体育斯诺克
  • 北单比分直播
  • 河北11选5走势图
  • 福建体彩36选7开奖结果
  • 九龙图库下载