版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP工程师经典面试题(含详细答案解析)本套面试题贴合中小型企业及互联网公司真实PHP面试场景,覆盖PHP基础语法、核心特性、数据库操作、安全防护、框架常识、实战坑点等高频考点,题型包含选择题、填空题、简答题、编程题、实战问答题,所有答案均为职场实战总结,适配初级、中级PHP工程师面试备考。一、单项选择题(10题,每题3分,共30分)1、以下不属于PHP基本数据类型的是()A、stringB、floatC、arrayD、integer2、PHP中关于==和===区别,说法正确的是()A、两者无区别B、==对比值和类型,===仅对比值C、==仅对比值,===严格对比值和类型D、===可以对比数组,==不可以3、以下超全局变量中,用于获取URL地址栏参数的是()A、$_POSTB、$_GETC、$_REQUESTD、$_SERVER4、PHP中session和cookie的区别,说法错误的是()A、cookie存储在客户端B、session存储在服务端C、session可以永久保存D、cookie可设置过期时间5、防止SQL注入最有效、最规范的方式是()A、使用trim过滤字符B、使用PDO预处理语句C、使用htmlspecialchars转义D、关闭数据库报错6、PHP中exit和die的关系是()A、完全无区别B、die是exit的别名,功能基本一致C、exit可以输出内容,die不可以D、die可以终止页面,exit仅终止代码7、以下函数中,可实现字符串反转的是()A、strrev()B、reverse()C、str_split()D、implode()8、Laravel框架中,路由文件默认存放的目录是()A、app/routeB、routesC、public/routeD、config/route9、PHP中foreach遍历数组时,引用赋值后需要释放引用的原因是()A、节省内存B、避免下次遍历出现数据错乱C、代码规范要求D、提升执行速度10、MySQL中,索引查询效率最高的索引类型是()A、普通索引B、唯一索引C、主键索引D、全文索引二、判断题(8题,每题2分,共16分,对的打√,错的打×)1、PHP是弱类型语言,变量无需提前定义类型,可动态转换。()2、$_REQUEST可以同时获取GET、POST、COOKIE提交的数据。()3、PHP中常量可以在程序运行过程中动态修改值。()4、header跳转页面后,后续PHP代码会继续执行。()5、数组遍历中,for循环效率高于foreach循环。()6、XSS攻击主要是通过注入SQL语句窃取数据库数据。()7、Laravel的ORM模型可以不用手动写SQL语句实现增删改查。()8、PHP默认支持多线程并发处理任务。()三、简答题(4题,每题6分,共24分)1、简述PHP中cookie和session的核心区别及各自使用场景。2、简述SQL注入的原理、危害及常规防护方案。3、简述PHP中传值赋值和引用赋值的区别。4、简述Laravel框架中MVC的工作流程。四、编程实操题(2题,每题10分,共20分)1、编写PHP代码,实现将二维数组按照指定字段值升序排序。示例数组:$arr=[['name'=>'张三','age'=>22],['name'=>'李四','age'=>19],['name'=>'王五','age'=>25]];按age字段升序排列。2、编写PHP代码,实现简单的文件上传功能,限制上传类型为jpg、png,限制文件大小2M。五、实战问答题(1题,10分)简述PHP项目开发中常见的安全漏洞及对应的防护措施(至少写出4种)。完整答案及详细解析一、单项选择题答案及解析1、【答案】C【解析】PHP八大基本类型包含四种标量类型(string、int、float、bool)、两种特殊类型(null、resource)、两种复合类型(array、object)。题目中string、float、integer均为基础标量类型,array属于复合类型,不属于基础数据类型。2、【答案】C【解析】==是宽松比较,只判断变量值是否相等,会自动进行类型转换;===是严格比较,同时判断值和数据类型必须完全一致,不会自动转换类型,日常开发校验数据优先使用===。3、【答案】B【解析】$_GET获取URL地址栏、GET请求参数;$_POST获取POST表单提交参数;$_REQUEST可兼容获取GET、POST、COOKIE数据;$_SERVER获取服务器及请求头信息。4、【答案】C【解析】session数据存储在服务器端,默认有过期时间,会话结束、浏览器关闭或超时后会自动销毁,无法永久保存;cookie存储在客户端浏览器,可手动设置永久过期时间。5、【答案】B【解析】PDO预处理语句会将SQL结构和参数分离,参数单独解析执行,从根源杜绝SQL注入;字符过滤、转义只能规避部分简单注入,存在漏洞,不是规范方案。6、【答案】B【解析】die()和exit()功能几乎一致,die是exit的别名,均可终止程序执行并输出提示内容,日常开发可通用,无本质区别。7、【答案】A【解析】strrev()是PHP内置字符串反转函数;reverse()非PHP原生函数;str_split()用于字符串转数组;implode()用于数组拼接为字符串。8、【答案】B【解析】Laravel框架默认路由文件统一存放于项目根目录的routes文件夹,包含web.php、api.php等路由文件。9、【答案】B【解析】foreach使用&引用赋值后,最后一个元素会保留引用状态,下次遍历数组时,最后一个元素的值会被覆盖,导致数据错乱,必须使用unset()释放引用。10、【答案】C【解析】主键索引唯一性最强、查询优先级最高,查询效率高于唯一索引、普通索引;全文索引仅适用于模糊文本检索,精准查询效率较低。二、判断题答案及解析1、【答案】√【解析】PHP属于弱类型动态语言,变量无需声明类型,赋值后自动匹配数据类型,且可随时重新赋值转换类型。2、【答案】√【解析】$_REQUEST超全局变量默认可以接收GET、POST、COOKIE三种方式提交的参数,通用性强,开发中按需使用。3、【答案】×【解析】PHP常量一旦定义,整个程序运行周期内值固定不变,无法修改、删除,仅可读取。4、【答案】×【解析】单纯的header跳转后,后续代码仍会执行,需在header后添加exit/die终止程序,避免多余代码执行。5、【答案】√【解析】for循环基于下标遍历,运算开销小;foreach需要遍历数组指针、遍历元素,开销更大,大数据数组遍历for效率更高。6、【答案】×【解析】XSS是跨站脚本攻击,注入JS、HTML脚本窃取用户信息、篡改页面;SQL注入是注入SQL语句操作数据库,二者攻击原理完全不同。7、【答案】√【解析】Laravel提供EloquentORM模型,封装了增删改查底层逻辑,开发者可通过模型方法直接操作数据库,无需手写原生SQL。8、【答案】×【解析】PHP默认是单线程同步执行,不支持多线程,仅可通过多进程、协程实现并发处理。三、简答题答案解析1、答案:核心区别:①存储位置:cookie存储在客户端浏览器,session存储在服务器端;②安全性:cookie可被用户查看、篡改,安全性低,session数据加密存储在服务端,安全性更高;③生命周期:cookie可手动设置过期时间,支持永久存储,session默认随会话超时销毁;④存储容量:cookie容量小,单条不超过4KB,session无严格容量限制。使用场景:cookie适用于记住登录状态、保存用户偏好设置、统计访客信息;session适用于用户登录会话验证、临时数据存储、权限校验等安全要求较高的场景。2、答案:原理:开发者直接将用户输入参数拼接进SQL语句执行,攻击者通过输入特殊SQL字符、语句,篡改原有SQL逻辑,执行非法数据库操作。危害:窃取、泄露数据库核心数据,篡改、删除数据库数据,甚至获取服务器权限,导致项目数据瘫痪、信息泄露。防护方案:①使用PDO/MySQLi预处理语句,参数化绑定,杜绝语句拼接;②过滤、转义用户非法输入;③关闭数据库错误信息对外暴露;④数据库账号最小权限配置;⑤统一参数校验规则。3、答案:传值赋值:默认赋值方式,新变量复制原变量的值,两个变量相互独立,修改其中一个变量的值,不会影响另一个变量。适用于普通数据存储、简单数据赋值场景。引用赋值:通过&符号实现,新变量与原变量指向同一个内存地址,二者为联动关系,修改任意一个变量的值,另一个变量会同步变更。适用于大数据传输、数组批量修改、节省内存开销场景,使用后需及时释放引用避免bug。4、答案:LaravelMVC工作流程:①用户发起浏览器请求,路由文件匹配对应请求地址与请求方式,绑定对应控制器方法;②请求进入控制器,控制器接收参数,完成参数校验、逻辑判断,调用模型层;③模型层负责与数据库交互,执行增删改查操作,返回数据结果;④控制器接收模型返回的数据,传递给视图层;⑤视图层渲染页面模板,拼接数据,最终返回页面给用户,完成一次请求响应。四、编程实操题答案解析1、二维数组按指定字段升序排序代码PlainText
<?php
$arr=[
['name'=>'张三','age'=>22],
['name'=>'李四','age'=>19],
['name'=>'王五','age'=>25]
];
//按照age字段升序排序
usort($arr,function($a,$b){
return$a['age']-$b['age'];
});
print_r($arr);
?>解析:使用usort自定义排序函数,通过回调函数对比数组age字段差值,实现升序排列,适配所有二维数组字段排序场景。2、限制类型、大小的文件上传代码PlainText
<?php
//判断是否有文件上传
if(!empty($_FILES['file'])){
$file=$_FILES['file'];
//定义允许上传的类型、最大大小2M
$allowType=['image/jpeg','image/png'];
$maxSize=2*1024*1024;
//获取文件信息
$fileType=$file['type'];
$fileSize=$file['size'];
$fileName=$file['name'];
//校验文件类型和大小
if(!in_array($fileType,$allowType)){
exit('仅允许上传jpg、png图片');
}
if($fileSize>$maxSize){
exit('文件大小不能超过2M');
}
//生成唯一文件名,避免覆盖
$newName=time().rand(100,999).'.'.pathinfo($fileName,PATHINFO_EXTENSION);
//上传保存路径
$savePath='./upload/'.$newName;
//创建文件夹
if(!is_dir('./upload')){
mkdir('./upload',0777,true);
}
//执行上传
if(move_uploaded_file($file['tmp_name'],$savePath)){
echo'文件上传成功';
}else{
echo'文件上传失败';
}
}
?>
<formmethod="post"enctype="multipart/form-data">
<inputtype="file"name="file">
<buttontype="submit">上传</button>
</form>解析:代码包含文件接收、类型校验、大小校验、唯一文件名生成、自动创建目录、上传保存完整逻辑,规避文件覆盖、非法文件上传问题,符合项目开发规范。五、实战问答题答案解析答案:PHP项目常见安全漏洞及防护措施1、SQL注入漏洞:攻击者拼接恶意SQL语句操作数据库。防护:使用PDO预处理参数绑定、过滤非法输入、数据库最小权限配置、关闭SQL错误外显。2、XSS跨站脚本漏洞:攻击者注入JS脚本窃取用户cookie、篡改页面。防护:输出数据使用htmlspecialchars转义、过滤HTML脚本标签、开启CSP防护、cookie设置httponly属性。3、CSRF跨站请求伪造漏洞:冒用用户身份发起非法请求。防护:表单、接口请求添加Token验证、开启同源检测、限制请求来源域名。4、文件上传漏洞:上传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 591-2026船用法兰铸铁截止止回阀
- 2025~2026学年河北省廊坊市校联考冀教版六年级上册第三次月考数学试卷【附答案】
- 江苏省新沂市度第二期期2027届数学七上期末联考模拟试题含解析
- 2025-2026学年安徽省明光市初中数学七年级期末下册自我评估高频题(附答案)
- 除尘安全培训试题及答案
- 物理性能检验员(高级工)技能鉴定考试题及答案
- 2026年上下班交通安全培训试题及答案
- 矮小症生长速度动态监测共识
- OW测试面试题及详细答案(实战版)
- 新生儿呼吸窘迫综合征救治专家共识(2026版)
- 2026年新版gcp考试题库及答案pdf
- 小学四年级道德与法治教学设计:单元整体教学视域下《反对浪费》大单元实践探索
- 精神卫生行业精神科医师精神诊疗规范手册(执行版)
- E三相异步电动机的运行维护与故障处理
- 《“探界者”钟扬》2026-2027学年统编版高一语文必修上册
- 被执行人财产申报表(官方标准完整版)
- 市政道路工程试验检测计划
- 第19课《想和做》课件 2026-2027学年统编版语文九年级上册
- 2026年食品安全总监管理员考试题库
- 2025国家义务教育质量监测小学四年级语文试题
- 雨课堂学堂在线学堂云《政治学基础(暨南)》单元测试考核答案
评论
0/150
提交评论