版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PHP基础面试题及详细答案(初级高频)本套面试题精选初级PHP岗位高频基础考题,答案贴合企业实际面试话术,通俗易懂、落地实用,无书面化空话,适合面试刷题、基础复盘。一、PHP基础语法类1、PHP中变量的命名规则是什么?答案:1.PHP变量必须以$符号开头;2.变量首字符只能是字母(A-Z/a-z)或下划线(_),不能以数字开头;3.变量名只能包含字母、数字、下划线,不能有空格、特殊符号;4.变量名区分大小写,$name和$Name是两个不同变量;5.不能使用PHP关键字作为变量名。2、简述PHP数据类型有哪些?常用标量类型是什么?答案:PHP数据类型分为四大类,共8种原生类型:标量类型(4种,最常用):字符串(string)、整型(int)、浮点型(float)、布尔型(bool);复合类型(2种):数组(array)、对象(object);特殊类型(2种):null、资源(resource);伪类型:mixed、number等(多用于函数参数注释)。日常开发中,使用最多的是字符串、整型、布尔、数组四种类型。3、echo、print、print_r、var_dump的区别?答案:1.echo:语言结构,无返回值,速度最快,只能输出字符串、数字,开发最常用;2.print:函数,有返回值(固定返回1),只能输出单个值,效率低于echo;3.print_r:专门用于打印数组、对象,只输出值,不显示数据类型,适合简单打印数组结构;4.var_dump:调试专用,会同时输出数据类型、值、长度,可以打印所有类型数据,包含null、布尔值,是开发调试首选。4、单引号和双引号的区别?答案:1.单引号:纯静态字符串,不解析变量、不解析转义字符(除了\'和\\),执行效率更高;2.双引号:会自动解析字符串中的变量,同时支持\n\t\r等转义字符,效率略低于单引号;3.开发规范:纯固定文本用单引号,需要嵌入变量或换行等转义场景用双引号。5、PHP中常量和变量的区别?如何定义常量?答案:区别:1.变量可以随时赋值、修改、销毁;常量一旦定义,无法修改、无法销毁;2.变量带$符号,常量不带;3.变量作用域灵活,常量默认全局作用域,全局可调用;4.常量只能存储标量数据(字符串、数字、布尔、null)。定义方式:1.传统写法:define('常量名',值,是否大小写不敏感);2.推荐写法(PHP7+):const常量名=值;const支持类内定义,define不支持,日常开发优先使用const。二、变量与作用域类6、PHP变量有哪几种作用域?答案:主要分为4种:1.局部变量:定义在函数内部,仅函数内有效,函数执行结束自动销毁;2.全局变量:定义在函数外部,页面全局有效,函数内无法直接调用,需要用global关键字引入;3.静态变量static:仅在函数内定义,函数执行结束后变量值不销毁,下次调用函数继续沿用上次的值;4.超全局变量:系统预定义,全页面、全函数、全类中均可直接使用,无需声明。7、常用的PHP超全局变量有哪些?各自作用?答案:1.$_GET:获取URL地址栏、get方式提交的参数;2.$_POST:获取表单post方式提交的表单数据;3.$_REQUEST:同时获取GET、POST、COOKIE数据,优先级COOKIE>POST>GET,开发不推荐滥用;4.$_SERVER:获取服务器信息、请求头、请求方式、访问地址、IP等;5.$_COOKIE:读取客户端Cookie数据;6.$_SESSION:服务端会话数据,存储用户登录状态等临时数据;7.$_FILES:接收文件上传的文件信息(名称、大小、临时路径、后缀等);8.$_ENV:获取服务器环境变量。8、global和$GLOBALS的区别?答案:1.global关键字:在函数内声明全局变量的引用,相当于把外部全局变量引入函数内使用,一次只能引入单个变量;2.$GLOBALS[]:超全局数组,存储所有全局变量,函数内可以直接通过$GLOBALS['变量名']调用、修改全局变量;3.核心区别:global是引用赋值,$GLOBALS是直接操作全局变量本体,修改$GLOBALS的值会直接改变全局变量原值。三、数组相关高频题9、PHP数组分为哪几种?区别是什么?答案:分为索引数组、关联数组、多维数组三种:1.索引数组:键名为数字,默认从0开始自增,适合存储有序列表数据;2.关联数组:键名为自定义字符串,适合存储键值对数据,比如用户信息、配置信息;3.多维数组:数组中嵌套数组,多用于列表数据、多条数据集合(如用户列表、商品列表)。10、常用的PHP数组函数有哪些?(面试必考)答案:增删改查:array_push()尾部添加元素、array_pop()尾部删除元素、array_unshift()头部添加、array_shift()头部删除;键值操作:array_keys()获取所有键名、array_values()获取所有值、array_merge()合并数组;判断与去重:in_array()判断值是否存在、array_key_exists()判断键是否存在、array_unique()数组去重;排序函数:sort()升序、rsort()降序、ksort()按键升序、krsort()按键降序、asort()保留键值升序;统计过滤:count()统计数组长度、array_filter()过滤空元素、array_map()遍历处理数组元素。11、array_merge和直接数组相加的区别?答案:1.array_merge():如果数组键名重复,后数组的值会覆盖前数组;数字索引会重新排序、重置索引,字符串索引直接覆盖;2.数组相加+:键名重复时,保留前数组的值,后数组重复键的值直接舍弃,不会覆盖,也不会重置数字索引;日常合并数组优先使用array_merge,需要保留原有数据、不覆盖旧值时使用+拼接。四、函数相关面试题12、PHP函数参数传值和传引用的区别?答案:1.传值(默认):函数接收变量的副本,函数内部修改参数值,不会影响外部原变量;2.传引用(&参数):函数接收变量的内存地址,内外操作的是同一个变量,函数内修改会直接改变外部原变量;适用场景:需要在函数内修改原始数据、减少大数据拷贝开销时使用引用传参。13、什么是可变函数、匿名函数?答案:可变函数:将函数名赋值给变量,通过变量加括号调用函数,适合动态调用不同方法;匿名函数(闭包函数):没有函数名的函数,多用于回调、数组遍历、事件处理,可通过use关键字引入外部变量到函数内部使用,是项目开发中回调逻辑的常用写法。14、PHP静态函数和普通函数的区别?答案:1.普通函数:通过对象->方法()调用,属于对象实例;2.静态函数(static):通过类名::方法()直接调用,无需实例化对象;3.静态函数中不能直接调用非静态属性和方法,非静态函数可以调用静态属性和方法;4.静态资源属于类,全局唯一,所有对象共享,适合存放通用工具方法、配置方法。五、流程与逻辑判断15、==和===的区别?答案:1.==弱等于:只对比数值,会自动转换数据类型,类型不同但数值相等会判定为true;例:0==false、''==0、null==''结果均为true;2.===强等于(全等):同时对比数值+数据类型,类型和值必须完全一致才返回true;开发规范:所有判断优先使用===,避免类型转换导致的逻辑漏洞。16、empty、isset、is_null的区别?答案:1.isset():检测变量是否存在且不为null,变量未定义、为null返回false,其余情况(0、''、false)均返回true;多用于判断数组键、表单参数是否存在;2.empty():检测变量是否为空,0、''、false、null、空数组、未定义变量都会判定为空,返回true;适合快速判断数据是否有效;3.is_null():仅判断变量是否为null,只有值为null时返回true。六、Cookie与Session高频题17、Cookie和Session的区别?答案:1.存储位置:Cookie存储在客户端浏览器,Session存储在服务器端;2.安全性:Cookie可被篡改、窃取,安全性低;Session数据在服务端,安全性更高;3.存储大小:Cookie有大小限制(单条4KB左右);Session无严格大小限制;4.生命周期:Cookie可设置永久保存或过期时间;Session默认浏览器关闭即失效;5.依赖关系:Session默认依赖Cookie存储session_id,关闭Cookie后需要通过URL传参维持会话。18、Session失效的原因有哪些?答案:1.浏览器关闭,本地存储的session_idCookie被清除;2.服务器session文件过期、自动清理;3.手动执行session_destroy()、unset($_SESSION)销毁会话;4.切换域名、端口、协议,导致session_id变更;5.服务器重启、临时目录清空,session文件丢失。七、基础实操与易错点19、PHP如何防止SQL注入?答案:1.优先使用PDO/MySQLi预处理语句+参数绑定,从根源杜绝注入;2.禁止直接拼接SQL语句,所有外部参数统一传参;3.对用户输入进行过滤、转义,使用mysqli_real_escape_string转义特殊字符;4.开启数据库权限最小化,账号仅保留查询、写入基础权限;5.过滤非法字符、限制输入长度,做好参数类型校验。20、PHP页面跳转有几种方式?答案:1.PHP原生跳转(服务端):header('Location:地址'),必须在页面输出前执行,否则报错;2.JS跳转(客户端):echo"<script>location.href='地址'</script>";无输出限制,灵活度高;3.meta跳转:echo"<metahttp-equiv='refresh'content='3;url=地址'>";支持延迟跳转。21、include和require的区别?include_once和require_once的区别?答案:1.include/require:文件不存在时,include抛出警告错误,脚本继续执行;require抛出致命错误,脚本终止执行;2.include_once/require_once:once后缀代表只引入一次,可以防止文件重复引入导致的函数、类重复定义报错;开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物业红酒品鉴活动方案策划(3篇)
- 2026年合成橡胶制造行业市场运行态势报告及未来五至十年第二曲线与持续增长
- 2026年蓖麻行业洞察报告及未来五至十年发展趋势报告
- 电力施工方案变更申请(3篇)
- 疫情应急预案-修订说明(3篇)
- 石材勒脚施工方案(3篇)
- 社区病房开业活动方案策划(3篇)
- 2026年人造草坪制造行业洞察报告及未来五至十年发展趋势报告
- 精河路沿石施工方案(3篇)
- 组织青岛客户活动策划方案(3篇)
- 2026年教育时政题库(含答案)
- 2.3 水沸腾了 课件(内嵌视频)2026-2027学年三年级科学上册教科版
- 人教版六年级数学上册期中模拟综合卷(确定位置与分数乘除含答案)
- 2026-2027学年九年级历史上册全册必背知识点
- 患者风险评估管理制度
- 荷花淀复习课件
- 双级溢流阀的平衡活塞结构优化与动态稳定性研究
- 浙教版信息科技四年级上册全册教学设计
- 烟花爆竹企业动火作业管理制度
- 我国铀矿地质勘查发展历程
- 加强农村生活污水治理工程的施工质量
评论
0/150
提交评论