PHP面试常见问题汇总

1、PHP抽象类和接口的区别?
a)接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。
b)接口没有构造函数,抽象类可以有构造函数
c)接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。
一个类可以同时实现多个接口,但一个类只能继承于一个抽象类
2、Redis和Memcache的区别?
a)redis数据类型有String(字符串)、Hash(哈希)、List(队列)、Set(集合)、Sorted Set(有序集合Zset);Memcache仅仅String
b)Redis支持分布式
c)Redis可以持久化
d)redis可以通过aof恢复
3、Redis的优缺点以及持久化方式?
a)Redis 有各种丰富的数据结构
b)持久化方面快照方式指定时间写入磁盘,代价大;aof可以追加变化数据,恢复速度慢
c)aof、rdb是两种redis持久化的机制,用于crash后,redis的恢复。
4、服务器性能优化方式?
CPU、网络、IO、代码结构层、缓存、DB、请求等方面进行回答
5、Cookie和Session区别?
a)Cookie数据存放在客户的浏览器上,session数据放在服务器上
b)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
c)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie
6、客户端禁用了Cookie,Session还能用吗?
这个要怎么回答呢?因为可以通过get传递就可以继续用session了,一般面试基本问这个就是要这个解决方案的
7、如何共享Session?
memcache共享,主要是根据session_id来复原session
8、建立表需要考虑的因素有哪些?
a)char和varchar区别,用固定长度MyISAM用char,Innodb用varchar
b)存储引擎,Innodb支持事务
c)主键、外键
d)选用字段长度最小、优先使用定长型、尽可能的定义 “NOT NULL”、数值型字段中避免使用“ZEROFILL” 、如果要储存的数据为字符串,且可能值已知且有限, 优先使用 enum 或 set
e)索引
f)查询语句的优化
9、Myisam和Innodb区别?
MyISAM:不是事务安全的,也不支持外键。如果事物回滚将造成不完全回滚,不具有原子性。如果执行大量的SELECT,MyISAM是更好的选择;MyISAM的索引和数据是分开的,并且索引是有压缩的,内存使用率就对应提高了不少。能加载更多索引。表格可以被压缩,而且它们支持全文搜索;读性能较强;整表锁;建议使用固定长度的数据列代替可变长的数据列
InnoDB:事务安全的、支持外键。你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表;Innodb是索引和数据是紧密捆绑的,没有使用压缩从而会造成Innodb比MyISAM体积庞大不小;写性能较强;行级锁;
10、说出5个http状态码以及含义
参考:百科 博客

11、PHP的运行原理是?
参考
12、include和require区别是?
require是致命错误,require性能比include高
13、如何避免重复包含文件?
inluce_once或者require_once
14、SQL当中的内连接和左外连接、右外连接区别是?

15、echo、print、print_r的区别?
print是函数,有返回值;echo是语句,print_r是可以打印对象或者数组
16、下面的程序输出是多少?
$num = 10;
function add() {
$num = $num + 10;
}
add();
echo $num;
输出10;主要考察变量作用域
17、如何获取服务器IP、客户端IP?
客户端 $_SERVER[REMOTE_ADDR]
服务器 $_SERVER[SERVER_ADDR]
18、索引是什么?
可以提高查询效率
19、优化SQL的方案?
可以从索引、字段类型、查询语句等
20、GD库是用来做什么的?
图形处理
21、用什么方法可以加快页面加载速度?
页面大小、页面连接数(合并请求,异步等)、服务器抗压(php加速等)、网络等
22、如何防止SQL注入?
转义和数据类型检查
23、php程序引用传递和值传递的区别?
引用传递会更改原值
24、empty、isset区别
isset()函数 一般用来检测变量是否设置
empty()函数 判断值为否为空
25、大流量网站采用什么方式来解决访问量?
确认是否可以支持当前流量;优化数据库访问;禁止盗链;控制大文件下载;分流;流量分析
26、高并发量网站解决方案
html静态化、图片服务器分离、数据库集群库表三列、缓存、镜像、负载均衡、CDN加速
27、秒杀抽奖抢购等问题
利用队列,事务;多台服务器进行分流;具体问题具体分析

附:欢迎补充指正

Tagged . Bookmark the permalink.

Comments are closed.