0

0

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

幸せな気

幸せな気

发布时间:2019-05-23 13:58:38

|

12760人浏览过

|

来源于超全栈

转载

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

相关推荐:《2019年PHP面试题大汇总(收藏)

PHP

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有什么区别

大师兄智慧家政
大师兄智慧家政

58到家打造的AI智能营销工具

下载

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

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

7.png

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
javascript void运算符
javascript void运算符

void是一元运算符,执行右侧表达式但始终返回undefined;用于丢弃返回值、阻止a标签跳转、IIFE忽略结果、动态导入不取Promise、安全获取undefined。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

vscode的界面字体大小调整
vscode的界面字体大小调整

调整VSCode界面字体大小可通过设置编辑器或整体UI缩放实现;2.修改"Editor:FontSize"改变代码字体;3.设置"Window:ZoomLevel"调整整体界面字体;4.使用Ctrl+滚轮快捷键临时缩放。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

VSCode的注释快捷键
VSCode的注释快捷键

单行注释快捷键为Ctrl+/(Windows/Linux)或Cmd+/(macOS),块注释使用Shift+Alt+A(Windows/Linux)或Shift+Option+A(macOS),VSCode会根据语言类型自动匹配语法,如JavaScript用//,Python用#,C++用//,若快捷键无效需检查语言扩展或插件冲突。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2025.12.29

Golang 命令行工具(CLI)开发实战
Golang 命令行工具(CLI)开发实战

本专题系统讲解 Golang 在命令行工具(CLI)开发中的实战应用,内容涵盖参数解析、子命令设计、配置文件读取、日志输出、错误处理、跨平台编译以及常用CLI库(如 Cobra、Viper)的使用方法。通过完整案例,帮助学习者掌握 使用 Go 构建专业级命令行工具与开发辅助程序的能力。

4

2025.12.29

ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

165

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

56

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

108

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

356

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

703

2025.12.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
php-src源码分析探索
php-src源码分析探索

共6课时 | 0.5万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号