干货2018年最新PHP面试题

面试之前多看看公司的资料,可以看出面试的公司主要做什么,电商,数据库,php函数,sql的优化,接口,session和cookie等经常会问到,都是必问之题,这其中有一部分题目摘抄自网络,回答也不错

1.请自我介绍一下?

答:我叫xxx,来自北京,20xx年毕业于xx大学计算机xx系,毕业后在武汉从事了x年的php开发工作,公司是一个外包公司,主要做   tar-xfall.tar2)对于.gz结尾的文件   gzip-dall.gz   gunzipall.gz#zipall.zip*.jpg   这条命令是将所有.jpg的文件压缩成一个zip包#unzipall.zip   这条命令是将all.zip中的所有文件解压出来下载命令wget+空格+要下载文件的url路径=====================================Shell脚本:必须以#!/bin/sh开头简单例子:判断这个目录下有没有文件(File)#!/bin/bashNum=`ls-al/opt

grep"^-"

wc-l`if[$Num!=0]thenecho"/opthas$Numfiles"elseecho"/opthasnonefile"fils-al/opt

grep"^-"

wc-l这个命令能够统计文件个数为0就是没有文件非零就是有文件

54..memcache缓存什么数据

答:a、经常被读取并且实时性要求不强可以等到自动过期的数据。例如网站首页最新文章列表、某某排行等数据。b、经常被读取并且实时性要求强的数据。比如用户的好友列表,用户文章列表,用户阅读记录等。c、统计类缓存,比如文章浏览数、网站PV等。d、活跃用户的基本信息或者某篇热门文章。g、session数据5678910

55.魔术方法、魔术常量

答:1。__construct()实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。2。__destruct()

当删除一个对象或对象操作终止时被调用。

3。__call()对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。4。__get()读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数。5。__set()设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数。6。__toString()567891011

打印一个对象的时被调用。如echoobj;或printobj;或printobj;

7。__clone()12

克隆对象时被调用。如:t=newTest();t=newTest();t1=clone$t;

8。__sleep()12

serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。

9。__wakeup()12

unserialize时被调用,做些对象的初始化工作。

10。__isset()

检测一个对象的属性是否存在时被调用。如:isset($c-name)。11。__unset()unset一个对象的属性时被调用。如:unset($c-name)。12。__set_state()

调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。13。__autoload()

实例化一个对象时,如果对应的类不存在,则该方法被调用。魔术常量:1。__LINE__返回文件中的当前行号。2。__FILE__返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自PHP4.0.2起,__FILE__总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。3。__FUNCTION__返回函数名称(PHP4.3.0新加)。自PHP5起本常量返回该函数被定义时的名字(区分大小写)。在PHP4中该值总是小写字母的。4。__CLasS__返回类的名称(PHP4.3.0新加)。自PHP5起本常量返回该类被定义时的名字(区分大小写)。在PHP4中该值总是小写字母的。5。__METHOD__返回类的方法名(PHP5.0.0新加)。返回该方法被定义时的名字(区分大小写)。6.__set()当程序试图写入一个不存在或者不可见的成员变量时,__set()方法包含两个参数,分别表示变量名称和变量值,两个参数都不可省略7.__get()当程序试图调用一个未定义或不可见的成员变量时,__get()方法有一个参数,表示要调用的变量名__sleep()常用于提交未提交的数据,或类似的清理操作如果有一些很大的对象,但不需要全部保存,这个功能就很好用。__construct()在类实例化对象的同时执行该函数__distruct()在类实例化的对象销毁时执行__call()对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。__clone()克隆对象时被调用。如:$t=newTest();$t1=clone$t;__toString()打印一个对象的时被调用。如echo$obj;或print$obj;__isset()检测一个对象的属性是否存在时被调用。如:isset($c-name)。__unset()unset一个对象的属性时被调用。如:unset($c-name)。__autoload()实例化一个对象时,如果对应的类不存在,则该方法被调用。

56.接口和抽象类的区别是什么?

答:抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。抽象类是通过关键字abstract来声明的。抽象类与普通类相似,都包含成员变量和成员方法,两者的区别在于,抽象类中至少要包含一个抽象方法,抽象方法没有方法体,该方法天生就是要被子类重写的。抽象方法的格式为:abstractfunctionabstractMethod();接口是通过interface关键字来声明的,接口中的成员常量和方法都是public的,方法可以不写关键字public,接口中的方法也是没有方法体。接口中的方法也天生就是要被子类实现的。抽象类和接口实现的功能十分相似,最大的不同是接口能实现多继承。在应用中选择抽象类还是接口要看具体实现。子类继承抽象类使用extends,子类实现接口使用implements。

57.什么是队列?排它锁,Myisam死锁如何解决?

答:在默认情况下MYisam是表级锁,所以同时操作单张表的多个动作只能以队列的方式进行;排它锁又名写锁,在SQL执行过程中为排除其它请求而写锁,在执行完毕后会自动释放;死锁解决:先找到死锁的线程号,然后杀掉线程ID

58.bootstrap框架有哪些优点?

答:bootstrap是一款web开发框架,它由CSS,JavaScript,Html,三部分构成,它简洁灵活,使得web开发更加的快捷优点:①节省时间:使用bootstrap框架,可以大大的节省项目开发时间,它包含了很多现成的代码,如果需要使用,只需要找到合适的代码,插入合适的位置即可,此外,CSS是使用LESS编写,很多样式和设计都已经设计完成了;②定制化:bootstrap可以根据自己的项目,留取框架中自己需要的部分③设计合理:

*1栅格系统:bootstrap定义12格栅系统,在页面已经完成时,你可以根据合适的网格,以自己的需求改变行数和布局大小,样式已经开发完成了,只需要把代码放入合适的HTML代码位置即可*2.LESS:LESS是基于CSS之上的高级语言,其目的是使得CSS开发更加灵活,更加强大*3.JavaScript:bootstrap提供JavaScript库,该库超越了基本的架构和样式,开发者可以轻松的操作窗口警告框,工具提示框等,可避免了我们费神费力的写脚本*4一致性:bootstrap可以保证界面在不同平台的统一性,无论实在IE,Chrome等*5持续更新:bootstrap在不断的改进,更具规律性和持续性*6响应式:无论是在PC端还是移动端,都可以保持界面的一致性*7文档多:bootstrap的非常多

推荐阅读

1、PHP到底有多牛?你所知道的网站都在用它2、小白必读

什么是PHP,学PHP能做什么?

3、兄弟连教育PHP课程升级再次定义行业新标准

-END-

VIP1对1训练营,元课程0元购,点击文末“阅读原文”进行报名!媛妹子

赞赏

长按







































白癜风新年惠民活动
寒假中科白癜风专家会诊



转载请注明:http://www.xcqg58.com/zytd/9020.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了