PHP企业面试笔试真题(含详细答案解析)_第1页
PHP企业面试笔试真题(含详细答案解析)_第2页
PHP企业面试笔试真题(含详细答案解析)_第3页
PHP企业面试笔试真题(含详细答案解析)_第4页
PHP企业面试笔试真题(含详细答案解析)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

PHP企业面试笔试真题(含详细答案解析)考试时长:60分钟满分:100分适用场景:PHP初级/中级岗位入职笔试、技术面试考核一、单项选择题(共10题,每题3分,共30分)1、以下关于PHP变量传值和引用传值的说法,正确的是()A、默认情况下PHP变量为引用传值B、引用传值使用&符号,修改引用变量会影响原变量C、值传递会共享内存地址D、引用传值会复制一份新数据,互不干扰答案:B解析:PHP变量默认是值传递,会复制数据,新旧变量相互独立;引用传值通过&绑定变量内存地址,多个变量共用一份数据,修改任意一个都会影响其他变量。2、以下不属于PHP超全局变量的是()A、$_GLOBALSB、$_FILESC、$_ENVD、$GLOBAL答案:D解析:PHP标准超全局变量包含$_GLOBALS、$_GET、$_POST、$_FILES、$_COOKIE、$_SESSION、$_SERVER、$_REQUEST、$_ENV,无$GLOBAL写法,属于拼写错误。3、PHP中销毁会话ID、彻底清空服务器端会话数据的函数组合是()A、unset()B、session_unset()+session_destroy()C、clear_session()D、session_clean()答案:B解析:session_unset()清空当前会话的所有变量数据,session_destroy()销毁服务器端的会话文件、注销会话ID;单独unset只能销毁单个会话变量,后两者为无效函数。4、处理PHP文件上传时,接收上传文件信息的超全局变量是()A、$_UPLOADB、$_FILESC、$_POSTD、$_DATA答案:B解析:表单文件上传必须设置enctype="multipart/form-data",上传的文件名称、大小、类型、临时路径等数据,全部通过$_FILES获取。5、以下关于empty()函数的判断结果,错误的是()A、empty(0)返回trueB、empty('')返回trueC、empty(null)返回falseD、empty([])返回true答案:C解析:empty()判定为空的场景包含:0、空字符串、null、空数组、false、未定义变量,因此empty(null)结果为true。6、PHP中私有、保护、公有修饰符的访问权限范围,说法正确的是()A、private仅本类访问,protected本类和子类访问,public全局访问B、private子类可访问,protected仅本类访问C、public仅限类内访问D、protected可以任意访问答案:A解析:访问修饰符权限从严到松:private(仅本类)>protected(本类、子类)>public(本类、子类、外部全局)。7、SQL注入防护中,PHP操作MySQL最基础有效的防护方式是()A、关闭数据库权限B、预处理语句PDO/Mysqli预处理C、过滤所有空格D、限制访问IP答案:B解析:数据库预处理语句可将SQL逻辑与用户输入参数分离,彻底杜绝SQL注入;简单字符过滤存在绕过漏洞,无法根治注入问题。8、PHP中终止当前脚本执行,直接退出程序的函数是()A、breakB、continueC、exit()D、return答案:C解析:exit()和die()可直接终止整页脚本运行;break终止循环/switch;continue跳过本次循环;return仅终止当前函数,不影响全局脚本。9、去除字符串首尾空格及空白字符的函数是()A、ltrim()B、rtrim()C、trim()D、strip_tags()答案:C解析:trim()去除首尾空白、空格、制表符、换行符;ltrim()仅去除左侧,rtrim()仅去除右侧;strip_tags()用于去除HTML、PHP标签。10、PHP中静态属性、静态方法的特点,说法正确的是()A、必须实例化类才能调用B、属于类本身,所有对象共享C、不能被继承D、值无法重复修改答案:B解析:静态属性和方法归属类而非对象,无需实例化即可调用,所有实例对象共享同一份静态数据,可继承、可重复修改。二、填空题(共8空,每空2分,共16分)1、PHP中实现页面跳转的两种常用方式:_________、_________。答案:header()、js跳转2、遍历关联数组,同时获取键名和键值的循环语法是_________。答案:foreach($arras$key=>$value)3、PHP中获取当前脚本运行的服务器信息的超全局变量是_________。答案:$_SERVER4、阻止文件重复引入的两个引入函数是_________、_________。答案:include_once、require_once5、PHP面向对象中,子类重写父类方法的特性叫做_________。答案:方法重写6、PDO连接数据库时,设置异常错误处理模式的方法是_________。答案:setAttribute()三、简答题(共4题,每题6分,共24分)1、简述PHP中isset和empty的核心区别,并举出典型判断场景?参考答案:1、功能定义不同:isset()用于检测变量是否存在且不为null,只要变量声明过、值不是null,就返回true;empty()用于检测变量是否为空值,0、空字符串、空数组、false、null都会判定为空。2、报错机制不同:检测未定义变量时,isset()不会报错,empty()也不会报错;直接判断变量值会抛出警告。3、使用场景:判断用户是否提交某个字段用isset;判断字段内容是否为空、无有效值用empty。2、简述PHP文件上传的完整流程及必备安全校验?参考答案:完整流程:(1)前端表单设置post提交方式和enctype="multipart/form-data"属性;(2)后端通过$_FILES接收文件临时信息;(3)校验文件上传状态、大小、格式合法性;(4)将服务器临时目录文件移动至项目正式目录;(5)返回文件存储路径,完成上传。安全校验:限制文件后缀、MIME类型、文件大小,禁止上传php、exe等可执行文件,重命名文件防止覆盖和木马植入。3、简述PDO相较于MySQLi的优势?参考答案:(1)跨数据库适配:PDO支持MySQL、Oracle、SQLite等多种数据库,切换数据库仅需修改配置,无需重写业务代码;MySQLi仅支持MySQL数据库。(2)安全性更强:默认支持预处理语句,参数绑定机制完善,有效防止SQL注入。(3)错误处理灵活:支持异常、静默、警告三种错误模式,适配不同开发环境。(4)功能更丰富:支持事务处理、批量执行SQL,适配中大型项目开发。4、简述Cookie禁用后,Session为什么还能正常使用的解决方案?参考答案:Session默认通过Cookie存储会话ID,用户禁用Cookie后,无法传递session_id,会话失效。解决方案:开启PHP配置项session.use_trans_sid,自动在URL地址栏、表单链接中拼接session_id,通过URL传参的方式传递会话标识,绕过Cookie限制,保证会话正常生效。四、编程实操题(共3题,共30分)1、字符串处理:编写函数,去除字符串中所有HTML标签并去除首尾空格(8分)参考答案代码:php

<?php

//自定义过滤函数

functionfilterHtml($str){

//去除HTML、PHP标签

$newStr=strip_tags($str);

//去除首尾空白字符

$newStr=trim($newStr);

return$newStr;

}

//测试调用

$testStr="<p>PHP面试测试字符串</p>";

echofilterHtml($testStr);

//输出结果:PHP面试测试字符串

?>解析:结合strip_tags()过滤标签、trim()清理空白,是项目中用户内容过滤的基础写法,可有效防止前端标签注入、多余空白占位问题。2、数组排序:自定义二维数组,根据学生成绩从高到低排序(10分)参考答案代码:php

<?php

//定义学生二维数组

$student=[

['name'=>'小明','score'=>76],

['name'=>'小红','score'=>93],

['name'=>'小刚','score'=>85]

];

//使用usort自定义排序,降序排列

usort($student,function($a,$b){

return$b['score']-$a['score'];

});

//遍历输出排序后结果

foreach($studentas$v){

echo"姓名:{$v['name']},成绩:{$v['score']}<br/>";

}

?>解析:usort()支持自定义二维数组排序,匿名函数中为降序,前减后为升序,是实际开发中数组排序的常用方案。3、数据库实操:使用PDO方式实现新增用户数据,包含防注入、异常捕获(12分)参考答案代码:php

<?php

//数据库配置

$db_host='localhost';

$db_name='php_test';

$db_user='root';

$db_pwd='root';

try{

//连接数据库

$dsn="mysql:host={$db_host};dbname={$db_name};charset=utf8";

$pdo=newPDO($dsn,$db_user,$db_pwd);

//设置异常报错模式

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

//预处理SQL(占位符绑定参数,防SQL注入)

$sql="INSERTINTOuser(username,password,phone)VALUES(:name,:pwd,:phone)";

$stmt=$pdo->prepare($sql);

//绑定参数并执行

$data=[

':name'=>'test01',

':pwd'=>md5('123456'),

':phone'=>

];

$stmt->execute($data);

echo"新增成功,用户ID:".$pdo->lastInsertId();

}catch(PDOException$e){

echo"操作失败:".$

温馨提示

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

评论

0/150

提交评论