php发展

首页 » 常识 » 问答 » PHP面试经常被问到的知识点汇总,对你非
TUhjnbcbe - 2021/5/24 18:47:00
南京治疗白癜风的医院 http://news.39.net/bjzkhbzy/180424/6188156.html
这些是PHP面试经常被问到的知识点做汇总。仅是针对性指出知识点,相应的还需自己查找相关资料系统学习。我希望各位能不仅仅了解是什么,还要了解为什么,以及背后的原理。如果你现在处于以下几种状态,本资料非常适合你:

准备换工作,不知道从哪开始准备

技术遇到瓶颈,不知道该学什么

准备学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对比

1
查看完整版本: PHP面试经常被问到的知识点汇总,对你非