PHP工程师笔试真题(含详细答案·企业实操版)_第1页
PHP工程师笔试真题(含详细答案·企业实操版)_第2页
PHP工程师笔试真题(含详细答案·企业实操版)_第3页
PHP工程师笔试真题(含详细答案·企业实操版)_第4页
PHP工程师笔试真题(含详细答案·企业实操版)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP工程师笔试真题(含详细答案·企业实操版)整套试题分为:基础语法、数组与逻辑、面向对象、数据库、Web安全、框架与缓存、编程实操七大模块,题型包含选择、填空、简答、编程,完全贴合中小企业及互联网初级PHP岗位笔试场景。一、单选题(共10题,每题2分)1、PHP中以下变量名合法的是?()A、$123name  B、$name_123  C、$name-123  D、$class答案:B解析:PHP变量以$开头,首字符不能是数字,只能由字母、数字、下划线组成;A数字开头非法,C含特殊符号非法,D是PHP关键字,不能用作普通变量名。2、以下不属于PHP数据类型的是?()A、string  B、float  C、bool  D、char答案:D解析:PHP标量类型为字符串、整型、浮点型、布尔型,无char单字符类型,单字符也统一用string存储。3、PHP中===和==的区别,说法正确的是?()A、无区别  B、===只比较值,==比较值和类型  C、==只比较值,===比较值和类型  D、以上都不对答案:C解析:==宽松比较,自动转换类型后对比值;===严格比较,必须值和数据类型完全一致才返回true。4、isset()和empty()的区别,以下说法错误的是?()A、isset()检测变量是否存在且不为null  B、empty()检测变量是否为空、为0、为空字符串等  C、$a=0;empty($a)为false  D、$a=null;isset($a)为false答案:C解析:empty判定为空的场景包含:空字符串、0、0.0、null、空数组、false。$a=0时,empty($a)结果为true。5、PHP中销毁单个变量的函数是?()A、delete()  B、unset()  C、destroy()  D、clear()答案:B解析:PHP使用unset()销毁指定变量,无delete/destroy/clear销毁变量的原生函数。6、MySQL中,假设数据表主键为id,查询第10-20条数据,正确的是?()A、limit10,20  B、limit20,10  C、orderbyidlimit9,11  D、orderbyidlimit10,10答案:D解析:limit偏移量,条数;第10条后开始取10条(11-20),偏移量为10,取10条,必须配合排序保证数据有序。7、PHP处理文件上传,表单必须设置的属性是?()A、method="get"  B、enctype="multipart/form-data"  C、action=""  D、target="_blank"答案:B解析:文件上传表单必须设置enctype为multipart/form-data,否则无法解析文件数据流,get方式不支持文件上传。8、以下哪个函数可以防止SQL注入?()A、htmlspecialchars()  B、addslashes()  C、mysql_real_escape_string()  D、trim()答案:C解析:mysql_real_escape_string可转义SQL特殊字符,专门防御SQL注入;addslashes有局限性,高版本PHP已弱化;htmlspecialchars用于防XSS,trim仅去除首尾空格。9、Laravel框架中,路由文件默认存放目录是?()A、app/route  B、routes  C、public  D、config答案:B解析:Laravel所有路由文件默认在根目录routes文件夹下,包含web.php、api.php等。10、Redis中用来设置永久缓存的命令是?()A、setex  B、set  C、expire  D、persist答案:B解析:set键值无过期时间即为永久缓存;setex为带过期时间设置;expire是给已有key设置过期时间;persist是移除key的过期时间。二、填空题(共5题,每题3分)1、PHP中循环遍历数组的三种常用方式:________、________、________。答案:for、foreach、while2、PHP中获取当前时间戳的函数是________,格式化时间的函数是________。答案:time()、date()3、面向对象三大特性:________、________、________。答案:封装、继承、多态4、SQL中,查询不重复数据的关键字是________,模糊查询的关键字是________。答案:distinct、like5、PHP中开启错误提示的配置项是________,位于________配置文件中。答案:display_errors、php.ini三、简答题(共4题,每题8分)1、简述PHP中include和require的区别?详细答案:1)报错级别不同:include引入文件失败时,抛出警告错误,程序继续向下执行;require引入文件失败时,抛出致命错误,程序终止运行。2)使用场景不同:include适用于非核心文件(页面模板、广告组件等),文件缺失不影响主体功能;require适用于核心配置、核心函数文件,必须加载成功才能运行程序。3)衍生用法:include_once、require_once会判断文件是否已加载,避免重复引入报错,适合引入函数类文件。2、简述GET和POST请求的区别?详细答案:1)参数位置:GET参数拼接在URL地址栏中;POST参数放在请求体中。2)数据大小:GET有URL长度限制,传输数据量小;POST无严格限制,可传输大量数据、文件。3)安全性:GET参数暴露在地址栏,可被缓存、记录历史,安全性低;POST参数隐藏,相对安全。4)缓存特性:GET请求默认可缓存;POST请求默认不缓存。5)书签保存:GET可保存为书签;POST无法保存书签。3、简述XSS和CSRF漏洞的原理及简单防护方案?详细答案:XSS跨站脚本攻击:原理:用户输入恶意JS、HTML代码,后端未做过滤,前端渲染时执行恶意代码,窃取cookie、篡改页面。防护:使用htmlspecialchars()转义输出内容;过滤特殊标签;设置cookiehttponly;开启CSP安全策略。CSRF跨站请求伪造:原理:利用用户已登录的cookie身份,诱导用户访问恶意链接,伪造用户执行操作(改密码、下单、转账)。防护:请求添加Token验证;验证请求来源Referer/Origin;关键操作增加验证码、短信验证。4、简述索引的作用,以及为什么索引不是越多越好?详细答案:索引作用:建立数据快速检索结构,大幅提升查询语句的查询速度,减少数据库全表扫描。索引过多的弊端:1)索引会占用磁盘存储空间,索引越多,占用空间越大;2)数据表新增、修改、删除数据时,需要同步更新所有索引,索引越多,增删改效率越低;3)冗余索引会增加数据库优化成本,容易出现索引失效问题。四、编程题(共2题,每题10分)1、PHP冒泡排序:对数组$arr=[3,1,4,2,5,9,7]进行升序排序,手写代码。参考答案:php

<?php

functionbubbleSort($arr)

{

$len=count($arr);

//外层控制排序轮数

for($i=1;$i<$len;$i++){

//内层每轮对比交换

for($j=0;$j<$len-$i;$j++){

if($arr[$j]>$arr[$j+1]){

//交换位置

$temp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$temp;

}

}

}

return$arr;

}

$arr=[3,1,4,2,5,9,7];

$res=bubbleSort($arr);

print_r($res);

?>2、手写PHP连接MySQL数据库,实现查询用户表数据(基础封装)参考答案:php

<?php

//数据库配置

$db_host='localhost';

$db_user='root';

$db_pwd='root';

$db_name='test_db';

//连接数据库

$conn=mysqli_connect($db_host,$db_user,$db_pwd,$db_name);

if(!$conn){

die('数据库连接失败:'.mysqli_connect_error());

}

//设置编码

mysqli_set_charset($conn,'utf8');

//查询数据

$sql="select*fromuser";

$res=mysqli_query($conn,$sql);

//遍历数据

$user_list=[];

while($row=mysqli_fetch_assoc($res)){

$user_list[]=$row;

}

print_r($user_list);

//关闭连接

mysqli_close($conn);

?>五、综合问答题(1题,12分)问题:简述PHP项目中常见的优化方案(代码、数据库、服务器三个维度)详细答案:1、代码层面优化1)减少全局变量,合理使用局部变量,减少内存占用;2)避免循环内嵌套数据库查询、文件操作;3)合理使用缓存,重复调用的函数、数据进行静态缓存;4)删除冗余代码、废弃逻辑,精简文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论