版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP工程师面试笔试题及详细参考答案(企业通用版)适用场景:初级/中级PHP工程师招聘笔试、职场面试自测、实习生转正考核答题说明:本试题满分100分,答题时间90分钟,题型涵盖基础语法、核心函数、数据库、框架、安全、实战场景,贴合企业真实开发需求,答案适配职场开发规范。一、单项选择题(共15题,每题2分,共30分)1.PHP中以下变量命名合法的是()A.$123nameB.$name_123C.$name-123D.$class2.以下不属于PHP基本数据类型的是()A.stringB.intC.arrayD.float3.PHP中!=和!==的核心区别是()A.无区别B.!=只判断值,!==同时判断值和类型C.!=判断类型,!==判断值D.适用场景不同,结果一致4.以下超全局变量中,用于获取POST表单提交数据的是()A.$_GETB.$_POSTC.$_REQUESTD.$_SERVER5.PHP中empty()函数的判断规则,以下说法正确的是()A.empty(null)返回falseB.empty(0)返回trueC.empty('0')返回falseD.empty([])返回false6.用于实现PHP字符串反转的原生函数是()A.strrev()B.reverse()C.str_split()D.implode()7.MySQL中,用于查询不重复数据的关键字是()A.LIMITB.DISTINCTC.ORDERBYD.GROUPBY8.PHP中session和cookie的区别,以下说法错误的是()A.cookie存储在客户端,session存储在服务端B.session更安全,cookie可被篡改C.二者生命周期一致D.cookie可设置过期时间,session默认浏览器关闭失效9.Laravel框架中,用于接收路由参数的方式不包括()A.路由绑定参数B.Request对象获取C.$_GET直接获取D.依赖注入获取10.PHP中foreach遍历数组时,默认不会改变原数组,想要修改原数组值需要使用()A.&引用B.globalC.staticD.$this11.以下SQL语句中,查询效率最高的是()A.select*fromuserB.selectid,namefromuserC.selectnamefromuserwhere1=1D.select*fromuserlimit1012.PHP中exit()和die()的关系是()A.完全等价B.exit终止程序,die输出信息后终止C.die优先级更高D.功能相似,语法不同13.防止SQL注入最核心、最规范的方式是()A.使用trim过滤数据B.开启魔术引号C.使用预处理语句PDO/MySQLi预编译D.正则替换特殊字符14.PHP中常量定义正确的是()A.define('NAME','张三');B.$NAME='张三';C.constNAME;D.define(NAME,'张三');15.以下不属于PHP面向对象特性的是()A.封装B.继承C.多态D.重载二、填空题(共10空,每空1分,共10分)1.PHP文件的默认后缀是______,PHP代码的起始标签是______。2.统计数组元素个数的原生函数是______,获取字符串长度的函数是______。3.MySQL中InnoDB引擎支持______和事务,MyISAM引擎不支持。4.PHP中实现页面跳转的函数是______。5.面向对象中,______方法在类实例化时自动执行。6.拆分字符串为数组的函数是explode,拼接数组为字符串的函数是______。7.防止跨站脚本攻击XSS的核心函数是______。三、简答题(共5题,每题6分,共30分)1.简述cookie和session的区别及各自使用场景。2.简述PHP中传值和传引用的区别。3.简述MySQL索引的作用、优缺点。4.简述PHP常见的代码安全漏洞及防护方案。5.简述Laravel框架中路由、控制器、模型的分工与协作逻辑。四、编程题(共2题,每题10分,共20分)1.编写PHP代码,实现冒泡排序,对数组[5,2,9,1,5,6]进行升序排序,输出排序后的数组。2.编写PHP连接MySQL数据库的代码(使用PDO方式),实现数据库连接、查询单条用户数据功能。五、场景问答题(共1题,10分)在实际项目开发中,经常出现页面访问慢、接口响应超时的情况,请结合PHP+MySQL开发场景,说明常见的性能瓶颈及对应的优化方案。详细参考答案及解析一、单项选择题答案及解析1.答案:B解析:PHP变量以$开头,首字符不能是数字,只能由字母、数字、下划线组成,不能包含特殊符号,class为关键字不可用作变量名。2.答案:C解析:PHP八大基本类型包含四种标量类型(string、int、float、bool)、两种特殊类型(null、resource),array属于复合类型。3.答案:B解析:!=是松散比较,只对比数值是否相等,不区分数据类型;!==是严格比较,必须数值、数据类型完全一致才返回true。4.答案:B解析:$_POST专门接收POST方式提交的表单数据,$_GET接收GET数据,$_REQUEST可同时接收GET、POST、COOKIE数据,通用性强但安全性、性能稍差。5.答案:B解析:empty()判定为空的场景包含:空字符串、0、'0'、null、空数组、false。因此empty(0)结果为true。6.答案:A解析:strrev()为PHP原生字符串反转函数,reverse非PHP原生函数,str_split是字符串转数组,implode是数组拼接字符串。7.答案:B解析:DISTINCT用于去除查询结果中的重复数据;LIMIT限制查询条数,ORDERBY排序,GROUPBY分组统计。8.答案:C解析:cookie可手动设置过期时间,持久化存储在客户端;session默认浏览器关闭即失效,存储在服务端,二者生命周期完全不同。9.答案:C解析:Laravel框架遵循MVC规范,不推荐直接使用原生超全局变量获取数据,统一通过路由参数绑定、Request对象、依赖注入方式接收参数。10.答案:A解析:foreach默认遍历为传值赋值,修改的是副本数据;添加&引用后,可直接操作原数组元素,修改原数组值。11.答案:B解析:查询数据时禁止使用select*,会查询所有字段,消耗数据库IO和内存,按需查询指定字段效率最高。12.答案:A解析:PHP中exit()和die()功能完全等价,均可终止当前脚本执行,也可传入字符串输出提示信息,只是写法习惯不同。13.答案:C解析:正则过滤、trim过滤只能简单规避部分风险,魔术引号已被废弃;PDO/MySQLi预处理语句通过预编译、参数绑定,从根源杜绝SQL注入。14.答案:A解析:PHP常量通过define()函数或const关键字定义,define第一个参数为字符串格式的常量名,必须加引号,常量定义时必须赋值。15.答案:D解析:PHP面向对象三大核心特性为封装、继承、多态,不支持方法重载,仅支持方法重写。二、填空题答案1.php、<?php2.count()、strlen()3.外键4.header()5.构造(__construct)6.implode()7.htmlspecialchars()三、简答题参考答案1.简述cookie和session的区别及各自使用场景。区别:1、存储位置不同,cookie存储在客户端浏览器,session存储在服务器端;2、安全性不同,cookie可被用户查看、篡改,安全性较低,session数据仅服务端可见,安全性更高;3、生命周期不同,cookie可手动设置过期时间,支持持久化存储,session默认浏览器关闭失效;4、存储容量不同,cookie单条容量有限,一般4KB左右,session无明确容量限制;5、依赖关系,session运行需要依赖cookie存储sessionID。使用场景:cookie适合存储非敏感、长期有效的数据,比如用户记住登录状态、网站偏好设置、浏览记录;session适合存储用户登录凭证、权限信息、临时敏感数据,用于维持用户会话状态。2.简述PHP中传值和传引用的区别。传值:默认赋值方式,将变量的值复制一份赋值给新变量,两个变量相互独立,修改其中一个变量的值,不会影响另一个变量。适用于普通数据赋值、无需修改原数据的场景。传引用:通过&符号实现,新变量和原变量指向同一个内存地址,本质是同一个数据的不同别名,修改任意一个变量的值,都会同步改变另一个变量的值。适用于需要直接修改原数组、原变量数据,节省内存开销的场景。3.简述MySQL索引的作用、优缺点。作用:索引是数据库的优化机制,可快速定位数据行,大幅提升查询语句的执行效率,减少数据库全表扫描的开销。优点:1、极大提升数据查询速度,优化SQL执行效率;2、可通过唯一索引约束数据唯一性;3、加速表与表之间的关联查询;4、减少分组、排序操作的耗时。缺点:1、索引会占用额外的磁盘存储空间;2、新增、修改、删除数据时,需要同步更新索引结构,降低写入、更新效率;3、过多索引会增加数据库维护成本。4.简述PHP常见的代码安全漏洞及防护方案。1、SQL注入:用户恶意拼接SQL语句篡改、查询数据库数据。防护:使用PDO预处理语句、参数绑定,禁止直接拼接用户参数到SQL语句,过滤特殊字符。2、XSS跨站脚本攻击:注入JS脚本窃取用户信息、篡改页面。防护:输出数据时使用htmlspecialchars()转义特殊字符,开启CSP安全策略。3、CSRF跨站请求伪造:冒用用户身份发起非法请求。防护:请求添加Token验证,校验请求来源Referer。4、文件上传漏洞:上传恶意脚本文件执行木马程序。防护:校验文件后缀、MIME类型,限制上传文件大小,上传目录禁止脚本执行。5.简述Laravel框架中路由、控制器、模型的分工与协作逻辑。Laravel遵循MVC开发模式,三者分工明确、各司其职:1、路由(Route):负责统一接收前端请求,定义请求地址、请求方式,绑定对应的控制器方法,实现请求分发,不处理业务逻辑和数据。2、控制器(Controller):作为中间调度层,接收路由分发的请求,校验请求参数,调用模型处理数据,整合业务逻辑,最终返回页面或接口数据,不直接操作数据库。3、模型(Model):对应数据库数据表,负责数据层操作,封装数据库查询、新增、修改、删除等数据交互逻辑,定义数据表字段、关联关系,为控制器提供数据支撑。协作流程:前端发起请求→路由匹配地址并分发→控制器接收请求、校验参数→调用模型操作数据库→模型返回数据→控制器整理数据并返回结果给前端。四、编程题参考答案1.冒泡排序代码php
<?php
//定义待排序数组
$arr=[5,2,9,1,5,6];
//获取数组长度
$len=count($arr);
//冒泡排序核心逻辑
for($i=0;$i<$len-1;$i++){
for($j=0;$j<$len-1-$i;$j++){
//前一个数大于后一个数则交换位置,实现升序
if($arr[$j]>$arr[$j+1]){
$temp=$arr[$j];
$arr[$j]=$arr[$j+1];
$arr[$j+1]=$temp;
}
}
}
//输出排序后数组
print_r($arr);
?>输出结果:Array([0]=>1[1]=>2[2]=>5[3]=>5[4]=>6[5]=>9)2.PDO连接MySQL并查询单条数据代码php
<?php
//数据库配置信息
$db_host='127.0.0.1';
$db_name='test_db';
$db_user='root';
$db_pwd='root';
try{
//实例化PDO连接数据库
$pdo=newPDO("mysql:host={$db_host};dbname={$db_name};charset=utf8",$db_user,$db_pwd);
//设置异常错误模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//预处理SQL语句,参数绑定查询
$sql="selectid,name,phonefromuserwhereid=:id";
$stmt=$pdo->prepare($sql);
//绑定参数并执行
$stmt->bindParam(':id',1,PDO::PARAM_INT);
$stmt->execute();
//获取单条用户数据
$user=$stmt->fetch(PDO::FETCH_ASSOC);
print_r($user);
}catch(PDOException$e){
//捕获连接及查询异常
die("数据库操作失败:".$e->getMessage());
}
//关闭连接
$pdo=null;
?>五、场景问答题参考答案PHP+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SLA 005-2026青少年阅读推广服务指南
- 2025~2026学年河北省邢台市某校人教版六年级上册12月月考数学试卷 (1)【附答案】
- 2025-2026学年黑龙江省虎林市初中历史八年级期末下册自测模拟竞赛挑战题详细参考解析
- PCR技术专项考核试题(含详细答案解析)
- 阳台绿化及容器花箱布置方案
- 布加综合征长期抗凝出血预警监测共识
- 2025-2026学年浙江省富德市初中数学八年级期末下册自测重点黑金模拟题(详细参考解析)
- OW基础综合试题及详细答案
- OpenStack运维认证试题及详细答案
- 牙周病系统治疗流程专家共识(2025版)
- 2026年南宁市青秀区社工考试试题及答案
- 合同范本委托经营管理合同5篇
- 2025-2026学年广西壮族自治区柳州市初中历史八年级期末上册高分黑金考题(附答案)
- 【方案】2026低空经济中职院校建设方案
- 第三单元达标测试卷(试卷)2026-2027学年六年级数学上册人教版(含答案)
- 高职高考英语词汇表
- AI办公工具实操应用培训
- 2026国企总部招聘笔试真题题库及标准答案(完整版)
- 律师退伙申请书范本
- 2026易制毒、易制爆化学品安全培训课件
- CN115571780B 一种预制箱涵翻转可伸缩式吊具及使用方法 (中交第二航务工程局有限公司)
评论
0/150
提交评论