IT培训-高端面授IT培训机构
云和教育:云和数据集团高端IT职业教育品牌
  • 国家级
    全民数字素养与技能培训基地
  • 河南省
    第一批产教融合型企业建设培育单位
  • 郑州市
    数字技能人才(码农)培养评价联盟

河南云和数据总结8大经典php面试题

  • 发布时间:
    2017-06-01
  • 版权所有:
    云和教育
  • 分享:

云和数据成立以来快速发展,河南云和数据在发展的过程中也需要很多的PHP人才,通常一个合适的人选会经历大量的面试,想要顺利面试成功良好的仪容外表,得体的穿戴固然重要,对于php工程师这样的技术岗位过硬的专业知识更是必不可少。面试是对一个人的综合考验,那么面试官通常会问哪些问题,如何把自己掌握的知识给充分完美的表达出来?

面试就是一张考卷,很多时候需要临场发挥,保持良好的心态很重要,我们不应过度紧张,面试只是为了确认我们目前掌握的知识和企业当前岗位需求是否匹配。在自己对工作环境和预期薪资有一定期望的时候需要把自己过硬的专业素质表现出来,今天云和数据的面试官结合自己的大量面试经历给大家精心总结了8个经典的php面试题,希望给大家一些参考。

河南云和数据总结8大经典php面试题

1.HTTP中POST、GET、PUT、DELETE方式的区别

HTTP定义了与服务器交互的不同的方法,最基本的是POST、GET、PUT、DELETE,与其比不可少的URL的全称是资源描述符,我们可以这样理解:url描述了一个网络上资源,而post、get、put、delegate就是对这个资源进行增、删、改、查的操作!

(1)表单中get和post提交方式的区别

get是把参数数据队列加到提交表单的action属性所指的url中,值和表单内各个字段一一对应,从url中可以看到;post是通过HTTPPOST机制,将表单内各个字段与其内容防止在HTML的head中一起传送到action属性所指的url地址,用户看不到这个过程。

对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据

get传送的数据量较小,post传送的数据量较大,一般被默认不受限制,但在理论上,IIS4中最大量为80kb,IIS5中为1000k,get安全性非常低,post安全性较高

(2)GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。

与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。

POST请求同PUT请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。

DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。

2.echo、print_r、print、var_dump之间的区别

*echo、print是php语句,var_dump和print_r是函数

*echo输出一个或多个字符串,中间以逗号隔开,没有返回值是语言结构而不是真正的函数,因此不能作为表达式的一部分使用

*print也是php的一个关键字,有返回值只能打印出简单类型变量的值(如int,string),如果字符串显示成功则返回true,否则返回false

*print_r可以打印出复杂类型变量的值(如数组、对象)以列表的形式显示,并以array、object开头,但print_r输出布尔值和NULL的结果没有意义,因为都是打印”\n”,因此var_dump()函数更适合调试

*var_dump()判断一个变量的类型和长度,并输出变量的数值

3.优化数据库的方法

选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置NOTNULL,例如’省份’、’性别’最好适用ENUM

使用连接(JOIN)来代替子查询

适用联合(UNION)来代替手动创建的临时表

事务处理

锁定表、优化事务处理

适用外键,优化锁定表

建立索引

优化查询语句

4.语句include和require的区别是什么?为避免多次包含同一文件,可以用(?)语句代替他们

require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行

include有返回值,而require没有(可能因为如此require的速度比include快),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去

注意:包含文件不存在或者语法错误的时候require是致命的,而include不是

require_once表示了只包含一次,避免了重复包含

5.谈谈mvc的认识

由模型、视图、控制器完成的应用程序,由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图

河南云和数据总结8大经典php面试题

6.说明php中传值与传引用的区别,并说明传值什么时候传引用?

变量默认总是传值赋值,那也就是说,当将一个表达式的值赋予一个变量时,整个表达式的值被赋值到目标变量,这意味着:当一个变量的赋予另外一个变量时,改变其中一个变量的值,将不会影响到另外一个变量

php也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的__引用__(换言之,成为了其别名或者指向)了原始变量。改动的新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)。对象默认是传引用,对于较大是的数据,传引用比较好,这样可以节省内存的开销

7.列举流行的Ajax框架?说明Ajax实现原理是什么及json在Ajax中起什么作用?

流行的Ajax框架有jQuery,Prototype,Dojo,MooTools。

Ajax的工作原理是一个页面的指定位置可以加载另一个页面所有的输出内容,这样就实现了一个静态页面也能获取到数据库中的返回数据信息了。所以Ajax技术实现了一个静态网页在不刷新整个页面的情况下与服务器通信,减少了用户等待时间,同时也从而降低了网络流量,增强了客户体验的友好程度。

在使用Ajax时,涉及到数据传输,即将数据从服务器返回到客户端,服务器端和客户端分别使用不同的脚步语言来处理数据,这就需要一种通用的数据格式,XML和json就是最常用的两种,而json比XML更简单

8.什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?

参考答案:静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后必须由网络管理员修改路由表。

动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。

河南云和数据总结8大经典php面试题

以上就是河南云和数据总结的8大经典php面试题,当然答案没有完美只做参考。当面试官问出这些问题时希望大家有一个大致的方向,不至于偏题给人一个不好的印象。具体怎么回答还要根据自己掌握的知识加入自己的理解。独特的有深度的回答总能给面试官留下一个深刻的印象。

最后云和数据结合自己的情况再为大家介绍下面试流程,公司一般是人事专员先行面试,这会对一个人的品行进行综合考评,如果这一关都没过就不会有下文了,二轮面试一般都是技术经理,考验一个人的专业能力是否和公司需求对应。最后是总经理面试。正规的公司面试不会要求收取任何费用,了解更多云和数据面试的相关问题,欢迎咨询我们的网站客服。