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、秒杀抽奖抢购等问题
利用队列,事务;多台服务器进行分流;具体问题具体分析

附:欢迎补充指正

求职面试篇[周思敏公开课]

1.  衣着整洁要得体
面试妆容要淡妆,忌讳浓妆艳丽,衣着要精良、外观整洁、文明着装、穿着得当

2.   资料要备齐
各种证件、证书、几张照片,个人简历(个人信息要清晰明了),准备功课(企业文化,企业理念)

3.   请勿陪伴或协同
工作是自己的事情而不是逛大街

4.  称呼仪态要规范
进门检查仪表仪容,进房间要敲门,关门忌讳转身,不知道称呼要问(请问您怎么称呼等),不翘脚、不抖脚,坐姿端庄,离开要感谢主管面试,握手(看主管意愿)

5.  沟通表达要求实
忌讳不懂装懂,忌讳套近乎,忌讳抢话说

6.  面试官也要讲礼仪

面试和笔试汇总

最近忙着找工作,也没有更新博客,今天一个朋友让我赶紧把博客更新下,说说最近的面试情况也可以好给他们一个参考,这就整理出来给大家分享~~

笔试题目公开

get和post的区别

php以及js和html写出来跳转语句

函数isset和empty的区别

定义一个类,要求有三个属性,并输出内容

用js代码或者你熟悉的js类库书写一段代码实现复选框的全选、反选、全不选

用js编写trim函数

简单描述cookie和session的区别

简单说说cookie跨域以及session共享问题

将<div id=”myid”>这内容</div>用js代码把”这内容”替换成<img src=””>

输出客户端ip以及服务器端域名对应ip

编写一个函数实现数组从小到大排列(不允许使用排序函数,其实冒泡就可以)

说说你熟悉的js类库以及之间的区别

你知道的魔术函数有那些,分别说说用法

如果php环境开启了安全模式有什么影响

建立表的时候需注意一些什么?主键和索引简单说说定义和用途

ajax数据返回都有那些格式?之间的区别是什么?

linux下一个工作目录a,然后我去b操作一次之后我想回到a怎么搞?(cd -可以快速回到上次工作目录,cd ~回到用户根目录,建议大家还是积累点常用的快捷命令吧!)

PS:先公开这么多吧。记住的不多。当时也很激动~~

顺便说说自己的一些心得吧、

1、要沉着,冷静,胆大,要说出你的想法和看法,但是一定要避开你不会的东西(比如,你可以在面试的时候说这个技术在学校没有机会接触,希望能再公司接触到,但是我一定会学会并熟练掌握的!)

2、如果让你问问题,你提前一定要准备几个有价值问题!

3、hr面试(我第一次都栽这里了),hr和技术面试的综合评分才能决定你是否被录用。除非你的技术很牛,连老总都不忍心让你走!

4、说几个比较常见的问题

为何选择我们公司?(公司平台能进一步锻炼我,我关注公司很久了)后来在求职宝典看到的回答,这个你可以自己斟酌

为何选择这个城市?(这个就看个人发挥了)

你觉得你的缺点呢?(坑人啊,小心被带沟里了)

你希望的薪资呢?(你注意了,人家公司有自己标准,你可以说出来,如果过高~~~,当然你也可以说按照公司对待毕业生标准来就可以!但是个人建议你刚毕业就不要把薪资看的太重要了)

如果你能知道这个你所应聘的公司每年加薪幅度是多少?(这样你在公司就可以权衡三年或者几年中是不是有机会能跳槽呢?跳之后这个事就得看你了。)

以上是个人的一些看法,纯属个人战斗经验。看官路过就可以~~

谢谢那些一直关心和支持Joyous的人们。谢谢你们