面试题整理
好荣幸能够收到淘宝的面试通知,这里整理下php相关的面试题,不管难易,加深下自己的记忆
1,post和get传值的区别。
主要区别是,get是通过地址栏传值,大小限制在2kb,post一般通过表单传值,默认是不限制数据大小。get传值效率要比post高,但是安全性上post要好很多。
Get方式提交的参数及参数值会在地址栏显示,不安全,而Post不会,比较安全
2,include和require的去吧。
include在处理失败时会发出一个警告,然后程序继续运行,require在失败时会产生致命 错误,程序无法继续执行。
3,如何优化mysql数据库
对查询比较频繁的字段设置索引;单表数据不要过多,适当的采用分割;采用合适的表引擎,如主要是读的采用myisam,写多的采用innodb;对于大数据采用读写分离master-slavers。
4,cookie和session的区别
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
用户可以决定是否保存cookie,但不能决定是否保存session
5,http状态码
200 请求成功ok302 found已找到,请求的URL已移走(临时)。301 请求的URL已移走(永久)
400 bad request 告诉客户端,它发送了一个错误的请求。
500 服务器遇到一个错误,使其无法为请求提供服务.502 Bad Gateway(网关故障)
6,http报文头部
host
referef
user-agent
accept
Php5 支持完善类与对像
Mysql 5 支持视图 事务等
8,写出一些php魔幻方法;
__construct 初始化 构造函数
__destruct卸载 析构函数
__autoload自动加载函数
__call 调用不存在的类的函数的时候得处理方法,__call 失败,就调用父类方法,依此类推
__get 获取属性值
__set() 设置属性值
__isset()测定变量是否设定用的函数,传入一个变量作为参数,如果传入的变量存在则传回true,否则传回false
__unset()删除指定的变量且传回true,参数为要删除的变量。
__clone(); 克隆对象
__toString();进行对象的类型转换
__sleep();
__wakeup();
当一个对象被串行化,PHP会调用__sleep方法(如果存在的话).在反串行化一个对象后,PHP 会调用__wakeup方法. 这两个方法都不接受参数. __sleep方法必须返回一个数组,包含需要串行化的属性.
一些编译php时的configure参数
__destruct
__autoload
__call
__get
__set()
__isset()
__unset()
__clone();
__toString();
__sleep();
__wakeup();
当一个对象被串行化,PHP会调用__sleep方法(如果存在的话).
一些编译php时的configure