当前位置: 首页 > news >正文

PHP 后端面试题整理

PHP 传值和传引用的区别;

传值是把变量的值复制一份传给函数,函数里修改这个值,原来的变量不变。传引用是把变量的内存地址传给函数,函数里修改时,原来的变量也会跟着变。想让外面的变量不变,就传值;想让外面的变量跟着改,就传引用。

XSS 攻击和 CSRF 攻击的区别及解决方法;

XSS 是往网页插恶意代码,用户打开后在自己浏览器执行,偷信息或改页面;CSRF 是骗已登录用户在网站上不自觉执行操作,比如转账,利用网站对用户身份的信任。解决办法:XSS 做输入过滤和输出转义;CSRF 用 Token 验证或验证码。

MySQL 事务的特性以及隔离级别;

事务特性 ACID:
原子性:事务要么全执行要么全不执行;
一致性:事务执行前后数据保持合法状态;
隔离性:多个事务并发执行时相互不干扰;
持久性:事务提交后修改永久保存。

隔离级别从低到高:
读未提交:可能脏读;
读已提交:解决脏读但有不可重复读;
可重复读:解决不可重复读,MySQL 默认级别;
串行化:解决所有并发问题但性能低。

API 的幂等性是什么以及如何解决;

API 幂等性是同一请求调用多次,结果和副作用都一样,比如支付接口不重复扣款。解决办法:1. 生成唯一 Token,存在 Redis,请求时验证 Token,执行后删除;2. 数据库加唯一索引,防止重复数据。

如何检查 PHP 脚本和 MySQL 数据库查询效率;
PHP 脚本效率:
  1. 用 microtime () 记录开始和结束时间算耗时;
  2. 用 xdebug 生成性能分析报告。

MySQL 查询效率:

  1. 开启慢查询日志记录慢 SQL;
  2. 用 EXPLAIN 分析执行计划看是否用索引;
  3. 用 SHOW PROFILE 查看查询各阶段耗时。
Nginx+PHP-FPM 的工作原理;

Nginx 收到 PHP 请求后,通过 FastCGI 协议转发给 PHP-FPM,PHP-FPM 分配预先启动的空闲 PHP 子进程处理请求,处理完结果返回 Nginx,再响应给用户,主进程会监控子进程,崩溃自动重启。

网站攻击方式有哪些;

xss、csrf、sql 注入

MySQL 索引失效的场景;

索引列用函数 / 计算,如 WHERE YEAR (create_time)=2023;
索引列用 NOT IN/<>/!=,可能全表扫描;
字符串不加引号,如 WHERE name=123,隐式转换失效;
联合索引不满足最左前缀,如索引 (a,b,c) 只查 b=1 AND c=2;
OR 连接条件中某列无索引,导致相关索引失效;
索引列大量 NULL 时,IS NULL/IS NOT NULL 可能失效;
数据量过小,数据库选择全表扫描而非索引。

MySQL 分库分表的方案;

分库:
水平分库:按用户 ID 哈希取模,分 2 个库,每个库存部分用户数据,分散单库读写压力;
垂直分库:按业务模块拆分,如用户相关表放 user_db,订单相关放 order_db。
分表:
水平分表:按用户 ID 哈希取模分 4 张表,或按时间分表;
垂直分表:按列拆分,如用户表拆为基本信息表和详情表。

负载均衡的实现方式有哪些;

软件:比如 Nginx,能按轮询或 IP 哈希分发请求,中小公司常用;
硬件:比如 F5,成本高,适合大型企业。

k8s 的核心组件有哪些;

控制平面组件:1. API Server;2. Scheduler;3. Controller Manager;4. etcd。
节点组件:1. kubelet;2. kube-proxy。

K8s 的作用:是管理容器的平台,通常和 Docker 配合使用,Docker 负责将应用打包成容器,K8s 则负责这些容器的部署、自动重启故障容器、根据流量自动扩缩容,让容器应用的运行和维护更高效省心。

http://www.jsqmd.com/news/622447/

相关文章:

  • 【电路标准设计】VOOHU沃虎电子--SPE单对以太网标准电路参考
  • 泛化与适应能力局限:认知边界下的成长困局
  • 【词汇专栏】RAG:让 AI 学会“查完资料再说话“
  • QwQ-32B在Matlab科学计算中的应用
  • 拒绝拉伸与留白:鸿蒙折叠屏适配 Top4 体验优化场景(含三折屏适配)
  • 已绑定的京东E卡可以回收吗? - 京顺回收
  • 使用 C# 删除 PDF 中的数字签名牢
  • Qwen3-ASR-0.6B与CNN结合的音频分类实战
  • 拯救者笔记本终极控制指南:Lenovo Legion Toolkit完全掌控你的硬件
  • WindowsCleaner:拯救C盘空间的智能清理专家,让Windows系统重获新生
  • 保姆级教程:IndexTTS2 V23镜像快速部署,小白也能调出情感语音
  • 26年采购平台软件有哪些值得用?口碑厂商盘点(防坑必看) - 品牌排行榜
  • AI Agent 架构图解:大模型、记忆、RAG 与工具调用的协同机制栏
  • 比迪丽LoRA模型MySQL安装配置与作品库搭建教程
  • 国产信创库fio破坏主备库以及备份故障处理--惜分飞俾
  • 远程协作工具的下一个形态:超越视频会议和在线文档
  • Open-Meteo 天气API架构深度解析:高性能气象数据服务实现原理
  • Clipper1 C# 源码解读教程
  • 寻音捉影·侠客行行业落地:教育机构快速提取在线课程中所有‘课后习题’出现时刻
  • qmcdump:三分钟快速解锁QQ音乐加密文件的终极指南
  • 百川2-13B-对话模型WebUI快速部署:无需Docker,原生Python 3.10环境直跑
  • Intv_AI_MK11赋能Qt桌面应用:为C++ GUI程序添加自然语言交互界面
  • eNSP第二次作业
  • 黑丝空姐-造相Z-Turbo参数调优心得:采样步数与CFG Scale怎么设?
  • 如何选择中频炉厂家?2026年4月推荐评测口碑对比知名五家 - 品牌推荐
  • 2026年4月国内中频炉厂家推荐:TOP5口碑产品评测对比领先 - 品牌推荐
  • Kafka-King:分布式消息队列管理解决方案与可视化监控平台
  • 如何用Windows右键管理神器ContextMenuManager彻底清理杂乱右键菜单?终极指南来了!
  • 产生式表示法:规则、条件与推理链
  • 电商客服+导购智能体的设计与开发投