2019 php面试试题,个人总结

1.post和get的区别?

  1. url可见性:get方式url参数可见,post参数不可见
  2. 可缓存性:get方式可以缓存,post方式不可以缓存
  3. 传输数据大小:get方式一般传输数据不大于2k-4k,post请求传输的大小可以根据php.ini文件配置,也可以无限大
  4. 数据传输上:get方式通过url地址栏拼接参数传输,post通过body体传输.     

2.在程序开发中,如何提高程序运行效率?

  1. 优化sql语句,查询语句中尽量不使用select * ,用到哪个字段查哪个字段,少用子查询可用链表查询
  2. 数据表中创建索引
  3. 对常用数据生成缓存
  4. 对mysql进行主从复制,读写分离
  5. 使用nigx做负载均衡

3.session与cookie的区别

  1. 存储位置:session存储在服务器,cookie存于浏览器
  2. 安全性:session相对于cookie安全
  3. session为“会话服务”,在使用时需要打开,cookie不需要开启,可以直接使用

4.php常用处理数组的函数

  1. array()  创建数组
  2. in_array() 元素是否在数组中
  3. array_keys() 获取数组中key列表
  4. array_values()获取数组中value值列表
  5. array_filter()剔除数组中的空值

5.什么是事务?及其特征?

事务是一系列的数据库操作,是数据库应用的基本逻辑单位

特征:

  1. 原子性。或者说不可分割性:事务要么全部执行,要么全部不被执行
  2. 一致性:事务的执行使数据库从一种正确的状态转换成另一种正确的状态
  3. 隔离性:在事务正确提交之前,不允许把该事务对数据的任何改变提供给其他事务
  4. 持久性:在事务正确提交后,其结果将永久保存在数据库中

6.索引是什么?索引有何作用?索引的优缺点?

索引是一种特殊的数据库查询表;作用是利用它来加速对数据的检索;索引可以是唯一的,创建索引可以是一个列或者是多个列。缺点是:减慢了数据录入的速度,同时也增加了数据库的尺寸大小

7.数据库类型有哪些?

MYISAM,InnDB

MYISAM:成熟,稳重,易管理,快速读取;但是不提供事务,表级锁。

InnDB:支持事务,外键等,空间占用大,但是不支持全文检索

8.堆和栈的区别?

堆:在程序运行期间进行内存动态分配,你可以根据程序运行的情况确定要分配的堆内存的大小                                                                    栈:在程序编译期间就要分配好的内存空间,因此你需要在代码中就栈的大小用明确的定义

9.说说mvc是什么?

MVC是一种架构模式,model是模型层处理数据,view视图层,展现交互界面,controller是控制器层处理业务逻辑                                       原理:

 用户在视图层提交数据到控制器,控制器层调用模型层的方法进行数据处理,然后根据返回的结果控制器层再进行业务逻辑处理,最后返回到视图层。

10.redis和memecached的区别?

  1. 数据类型:redis支持丰富的数据类型,list,hash,string等,memecached仅支持简单 的key-value结构
  2. memecached的key-vaule存储比redis采用hash结构来做key-value存储的内存利用率更高
  3. redis支持事务,可以保证一系列命令的原子性
  4. redis数据持久化,可以将内存中的数据保存到磁盘
  5. redis只使用单核,memecached使用多核,所以每一个核上redis在存储小数据比memecached性能更高

11.redis是如何做到持久化的?

  1. RDB持久化,将redis内存中的状态保存到磁盘中,相当于备份数据库
  2. AOF持久化,通过保存redis服务器锁执行写的状态来记录数据库的,相当于备份数据库接收到的命令,所有被写入AOF的命令都是redis协议格式来保存的

12.为何php7比php5性能提升了两倍?

  1. 变量存储字节减少,减少了内存占用,提升变量操作速度
  2. 改善数组结构,数组元素和hash反映表被分配到同一块内存,降低内存占用,提升了cpu缓存命中率
  3. 改进了函数的调用机制,通过优化参数传递的环节,减少了一些指令,提高执行效率

13.composer是什么?工作原理是什么?

composer是一个依赖管理工具;原理是:将已经开发好的扩展包从packagist.org.composr仓库下载到我们的应用程序中,并声明依赖关系和版本控制

14.谈谈http的理解?

http是基于tcp协议上的,是应用层协议;

http的工作特点:

  1. 基于B/S模式
  2. 通信开销小,速度快,传输成本低
  3. 使用灵活,可使用超文本传输协议
  4. 无状态传输

http的工作原理:客户端发送请求给服务器,创建一个tcp链接,指定端口号,默认80,连接到服务器,服务器监听到浏览器请求,分析浏览器请求类型后,服务器会向客户端返回状态信息和数据内容

15.http和https的区别?

  1. http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议
  2. http和https使用完全不一样的连接方式,端口也不一样,http的默认端口为80
  3. http的无状态的协议,https有ssl+http构建的可进行加密传输,身份认证的网络协议

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值