准备换工作,不知道从哪开始准备
技术遇到瓶颈,不知道该学什么
准备学PHP,但不知道领域有多深
基础篇了解大部分数组处理函数
字符串处理函数区别mb_系列函数
引用,结合案例分析
==与===区别
isset与empty区别
全部魔术函数理解
static、$this、self区别
private、protected、public、final区别
OOP思想
抽象类、接口分别使用场景
Trait是什么东西
echo、print、print_r区别(区分出表达式与语句的区别)
__construct与__destruct区别
static作用(区分类与函数内)手册、SOF
__toString()作用
单引号’与双引号”区别
常见HTTP状态码,分别代表什么含义
什么意思呢?
进阶篇Autoload、Composer原理PSR-4、原理
Session共享、存活时间
异常处理
如何foreach迭代对象
如何数组化操作对象$obj[key];
如何函数化对象$obj();
yield是什么,说个使用场景yield
PSR是什么,PSR-1,2,4,7
如何获取客户端IP和服务端IP地址
客户端IP
服务端IP
了解代理透传实际IP的概念
如何开启PHP异常提示
php.ini开启display_errors设置error_reporting等级
运行时,使用ini_set(k,v);动态设置
如何返回一个重定向
[WARNING]一定当心设置后脚本会继续执行,不要认为下面不会执行,必要时使用dieorexit
如何获取扩展安装路径
phpinfo();页面查找extension_dir
命令行php-i
grepextension_dir
运行时echoini_get(‘extension_dir’);
字符串、数字比较大小的原理,注意0开头的8进制、0x开头16进制
字符串比较大小,从左(高位)至右,逐个字符ASCII比较
BOM头是什么,怎么除去
0xEF,0xBB,0xBF
检测、去除
什么是MVC
依赖注入实现原理
如何异步执行命令
模板引擎是什么,解决什么问题、实现原理(Smarty、Twig、Blade)
如何实现链式操作$obj-w()-m()-d();
Xhprof、Xdebug性能调试工具使用
索引数组[1,2]与关联数组[‘k1’=1,‘k2’=2]有什么区别
缓存的使用方式、场景
实践篇给定二维数组,根据某个字段排序
如何判断上传文件类型,如:仅允许jpg上传
不使用临时变量交换两个变量的值$a=1;$b=2;=$a=2;$b=1;
strtoupper在转换中文时存在乱码,你如何解决?phpechostrtoupper(‘ab你好c’);
Websocket、Long-Polling、Server-SentEvents(SSE)区别
“Headersalreadysent”错误是什么意思,如何避免
算法篇快速排序(手写)
冒泡排序(手写)
二分查找(了解)
查找算法KMP(了解)
深度、广度优先搜索(了解)
LRU缓存淘汰算法(了解,Memcached采用该算法)
数据结构篇(了解)堆、栈特性
队列
哈希表
链表
对比篇Cookie与Session区别
GET与POST区别
include与require区别
include_once与require_once区别
Memcached与Redis区别
MySQL各个存储引擎、及区别(一定会问MyISAM与Innodb区别)
HTTP与HTTPS区别
Apache与Nginx区别
define()与const区别
traits与interfaces区别及traits解决了什么痛点?
Git与SVN区别
数据库篇MySQL
索引、联合索引(命中条件)
分库分表(水平分表、垂直分表)
分区
会使用explain分析SQL性能问题,了解各参数含义
SlowLog(有什么用,什么时候需要)
重点理解type、rows、key
CRUD
JOIN、LEFTJOIN、RIGHTJOIN、INNERJOIN
UNION
GROUPBY+COUNT+WHERE组合案例
常用MySQL函数,如:now()、md5()、concat()、uuid()等
1:1、1:n、n:n各自适用场景
了解触发器是什么,说个使用场景
数据库优化手段
MSSQL(了解)
查询最新5条数据
NOSQL
持久化
支持多种数据类型
可利用CPU多核心
内存淘汰机制
集群Cluster
支持SQL
性能对比
支持事务
应用场景
Redis、Memcached、MongoDB
对比、适用场景(可从以下维度进行对比)
你之前为了解决什么问题使用的什么,为什么选它?
服务器篇查看CPU、内存、时间、系统版本等信息
find、grep查找文件
awk处理文本
查看命令所在目录
自己编译过PHP吗?如何打开readline功能
如何查看PHP进程的内存、CPU占用
如何给PHP增加一个扩展
修改PHPSession存储位置、修改INI配置参数
负载均衡有哪几种,挑一种你熟悉的说明其原理
数据库主从复制M-S是怎么同步的?是推还是拉?会不会不同步?怎么办
如何保障数据的可用性,即使被删库了也能恢复到分钟级别。你会怎么做。
数据库连接过多,超过最大值,如何优化架构。从哪些方便处理?
大概什么什么原因?如何排查呢?
架构篇偏运维(了解):
负载均衡(Nginx、HAProxy、DNS)
主从复制(MySQL、Redis)
数据冗余、备份(MySQL增量、全量原理)
监控检查(分存活、服务可用两个维度)
MySQL、Redis、MemcachedProxy、Cluster目的、原理
分片
高可用集群
RAID
源代码编译、内存调优
缓存
工作中遇到哪里需要缓存,分别简述为什么
搜索解决方案
性能调优
各维度监控方案
日志收集集中处理方案
国际化
数据库设计
静态化方案
画出常见PHP应用架构图
框架篇ThinkPHP(TP)、CodeIgniter(CI)、Zend(非OOP系列)
Yaf、Phalcon(C扩展系)
Yii、Laravel、Symfony(纯OOP系列)
Swoole、Workerman(网络编程框架)
对比框架区别几个方向点
是否纯OOP
类库加载方式(自己写autoload对比