GithubHelp home page GithubHelp logo

php-interview-qa's Introduction

PHP 面试问答

结合实际PHP面试,汇总自己遇到的问题,以及网上其他人遇到的问题,尝试提供简洁准确的答案

网络协议、数据结构与算法、PHP、Web、MySQL、Redis、Linux、安全、设计模式、架构、自我介绍、离职原因、职业规划、准备问题

面试流程

面试流程

技能树

skill tree

前言

从事软件开发,已经接近五个年头了,去年面试中,发现自己依然处于尴尬的位置。简单重复,缺乏挑战的工作,已经没有多大吸引力了,优秀的平台,面试缺屡次碰壁。人上年纪之后,思维敏感度、记忆力都明显有所下滑。

程序开发不要被限制在语言层面,这是大家都懂的道理。但是作为一个 PHP 开发者,很多时候都是缠绕在业务的沟壑,理想和现实总是相差甚大。去年由于部门重组,本来将近十余人负责的项目,之后只剩两三人负责,各种坑只能靠人肉解决,深感无力。

工作可能只是你的一部分,你必须有自己的能力定位。以前总觉得学什么,做什么都无所谓,需要学习的技术,花点时间快速学习就行,有新的技术出来,赶紧紧跟了解下。但这些年下来,发现自己却没有一样能够拿的出手的,甚至连一个像样的作品也没有。其实 PHP 的技术栈还是比较广的,在对整个技术栈有一定的掌握之后,可能还需要深挖几个自己喜欢的领域,否则在现今的就业市场里面,没有任何的竞争力。所以可以看到很多招聘者都在感慨,中高级工程师都去哪里了。

面试或者面试他人,无法逃避,那就选择面对。撰写《PHP 面试问答》,构建一个面试体系,而不必慌张的临时准备,时时刻刻都充分准备好,对自己负责,也对别人负责。

结合实际 PHP 面试,系统的汇总面试中的各种各样的问题,尝试提供简洁准确的答案。如果你在 PHP 面试中遇到问题,欢迎提 Issues 交流。包含网络协议、数据结构与算法、PHP、Web、MySQL、Redis、Linux、安全、设计模式、架构、自我介绍、离职原因、职业规划、准备问题等部分。

最后,祝愿大家在日后的求职中,都能拿到满意的 offer~~

术语对照表

术语对照表:顾名思义,帮助联想知识点

交流讨论组

wechat groups

问题列表

网络协议

数据结构与算法

PHP

Web

MySQL

Redis

  • Redis 特点

  • Redis 有哪些数据类型

  • 有序集合底层实现?跳跃表和平衡二叉树效率对比

  • 一致性哈希

  • 如何实现分布式锁

  • Redis 如何实现持久化

  • 可利用 CPU 多核心

  • 内存淘汰机制

  • 集群 cluster

Linux

  • 查看 CPU、内存、时间、系统版本等信息

  • find 、grep 查找文件

  • 批量删除文件

  • sed、awk使用

  • crontab

  • vim快捷键

  • 负载查看

  • 如何查看 PHP 进程的内存、CPU 占用

  • Linux进程

  • 进程、线程、协程区别

  • 502 大概什么什么原因? 如何排查 504呢

  • 进程间通信几种方式,最快的是哪种?

安全

  • CSRF 攻击?请描述一个实例

  • XSS 攻击

  • SQL 注入

  • IP 地址能被伪造吗

  • include 请求参数

  • md5 逆向原理

  • DOS 攻击

  • 数据库存储用户密码时,应该是怎么做才安全

  • 目录权限安全

  • disable_functions 关闭高危函数

  • 文件上传 PHP 脚本

  • eval 函数执行脚本

  • 了解 Hash 与 Encrypt 区别

设计模式

  • Autoload、Composer 原理

  • OOP **

  • 抽象类、接口 分别使用场景

  • 依赖注入实现原理

  • 单例模式

  • 工厂模式

  • 观察者模式

  • 适配器模式

  • 依赖注入模式

  • 门面模式

架构

  • 负载均衡有哪几种,挑一种你熟悉的说明其原理

  • 介绍下 nginx

  • 反向代理

  • nginx 中 fastcgi_pass 监听,unix socket 和 tcp socket 的区别

  • 消息队列?RabbitMQ、ActiveMq、Nsq、kafka

  • 穿透、雪崩

  • DB 主从、读写分离

  • 如何保障数据的可用性,即使被删库了也能恢复到分钟级别。你会怎么做

  • 数据库连接过多,超过最大值,如何优化架构。从哪些方便处理

  • 数据冗余、备份(MySQL增量、全量 原理)

  • 画出常见 PHP 应用架构图

  • 介绍下 RESTful API

  • API 请求如何保证数据不被篡改

  • API 版本兼容怎么处理

  • 限流(木桶、令牌桶)

  • OAuth 2 主要用在哪些场景下

  • JWT

  • 了解常用语言特性,及不同场景适用性

赞赏

wechat tips

声明

本资料仅供参考,水平有限,难免存在纰漏错误之处

欢迎转载,转载请标明来源出处,谢谢~~

作者:凌枫 Email:[email protected] 链接:https://github.com/colinlet/PHP-Interview-QA

php-interview-qa's People

Contributors

colinlet avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.