PHP面试题

1,请列举常用的PHP魔术方法,并说明用途。

__constuct()构造函数
通常实例化完一个对象之后,都要对该对象的属性进行初始化!在实例化一个对象的时候,PHP系统会自动的调用一个名字叫作__construct()的方法

__destruct()析构方法
与构造方法是一对,构造方法是在一个对象“出生”的时候由系统自动调用的,而析构方法是在一个对象“消失”的时候由系统自动调用的!

__clone()克隆
触发时机:是在克隆一个对象的时候,对新对象进行初始化的工作

__autoload()自动加载类
当调用不存在的类的时候自动调用!

__tostring()
当将对象当成字符串使用的时候自动调用


__invoke()
当将对象当成函数使用的时候自动调用

__set()
当对无法访问的属性赋值时自动调用(比如:类外调用私有属性)

__get()
当对获取无法访问的属性值的时候自动调用

__unset()
当销毁无法访问的属性的时候自动调用

__isset()
当判断无法访问的属性是否存在的时候自动调用

__call()
当调用无法访问的普通方法时自动触发

__callststic()
当无法通过静态方法访问时自动触发

2,php常用框架及其优缺点。

tp优点
1.借助成熟的Java思想
2.易于上手,有丰富的中文文档;学习成本低,社区活跃度高
3.框架的兼容性较强,PHP4和PHP5完全兼容、完全支持UTF8等。
4.适合用于中小项目的开发
5.从thinkphp3.2.2引入composer包管理工具

缺点
1.对Ajax的支持不是很好;
2.目录结构混乱,相比其他框架目录结构要差一点;
3.上手容易,但是深入学习较难。

yii

优点
1.纯OOP
2.用于大规模Web应用
3.模型使用方便
4.开发速度快,运行速度也快。性能优异且功能丰富
5.使用命令行工具。
6.支持composer包管理工具

1.对Model层的指导和考虑较少
2.文档实例较少
3.英文太多
4.要求PHP技术精通,OOP编程要熟练!
5.View并不是理想view,理想中的view可能只是html代码,不会涉及PHP代码。

 

laravel
优点
1.laravel的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD 和BDD
2.支持composer包管理工具
3.集合了php 比较新的特性,以及各种各样的设计模式,Ioc 容器,依赖注入等。
缺点
1.基于组件式的框架,所以比较臃肿

 

3,请列举redis常用的数据结构,并说明使用场景。

      String String是最常用的一种数据类型,普通的key/value存储都可以归为此类。 
       List 关注列表、粉丝列表、消息队列等。 
       Set Set提供一个与 List类似的列表功能,特殊之处在于Set会自动排序、去重,当需要存储一个列表数据,又不希望有重复数据时,Set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口,这个也是list所不能提供的。①使用Set存储一些集合性的数据,比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合;②可以对集合取交集、并集、差集,应用到好友推荐、共同关注等。③还可以利用唯一性,统计访问网站的所有独立IP。 
SortedSet SortedSet与Set的使用场景类似,是不允许重复项的String集合。 
        ①SortedSet可以通过提供一个优先级(score)的参数为成员排序,并且是插入有序的,即自动排序,可以应用于积分排行榜等。②如果需要一个有序且不重复的集合列表,可以选择sorted set数据结构,比如twitter 的public timeline可以以发表时间作为score来存储,这样获取时就是自动按时间排好序的。③用SortedSet做带权重的队列,比如普通消息的score为1,重要消息的score为2,然后工作线程可以选择按score的倒序来获取工作任务,让重要的任务优先执行。 
 Hash  存储一个学生信息对象数据,字段包括:id、姓名、班级、年龄等,通过id可以获取/修改任意的字段。 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值