最新消息:

10道PHP常见的笔试题,100位程序猿笔试有90位遇到过!

PHP tansuo365 60浏览 0评论

我也是PHP程序员一枚,深知程序员在找工作的过程中会经常经历大大小小的笔试和面试,因此我把我每次笔试的题目都记下来,如今发出来,为大家找工作提供一个参考,希望大家能尽快找到一个好工作!

开始我们的话题吧!

10道PHP常见的笔试题,100位程序猿笔试有90位遇到过!

1、写出PHP中常用的超全局变量(不少于5个)

$_GET —–>get传送方式

$_POST —–>post传送方式

$_REQUEST —–>可以接收到get和post两种方式的值

$_GLOBALS —–>所有的变量都放在里面

$_FILE —–>上传文件使用

$_SERVER —–>系统环境变量

$_SESSION —–>会话控制的时候会用到

$_COOKIE —–>会话控制的时候会用到

2、表单中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安全性较高

3、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() 判断一个变量的类型和长度,并输出变量的数值。

10道PHP常见的笔试题,100位程序猿笔试有90位遇到过!

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

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

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

注意:包含文件不存在或者语法错误的时候require是致命的,程序不会执行下去,而include不是。

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

5、用PHP打印出前一天的时间格式是2017-3-15 22:21:21

echo date(“Y-m-d G:i:s”,strtotime(“-1 day”));

6、MVC是什么?谈谈你对mvc的认识

MVC (Model-View-Controller)模式,即模型-试图-控制器模式,其核心思想是将整个程序代码分成相对独立而又能协同工作的3个组成部分,具体的功能如下:模型(Model):业务逻辑层。实现具体的业务逻辑、状态管理的功能。视图(View):表示层。就是与用户实现交互的页面,通常实现数据的输入和输出功能。控制器(Controller):控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。

7、MySQL面对千万级大数据时如何优化?

关于MySQL的优化,说实话一句话两句话根本说不清楚,因此大家可以在网上搜一下MySQL如何优化,你会找到你所想要的答案的。

10道PHP常见的笔试题,100位程序猿笔试有90位遇到过!

8、写出你常用的几个魔术常量

__LINE__文件中的当前行号。

__FILE__文件的完整路径和文件名。

__FUNCTION__函数名称

__CLASS__类的名称

__METHOD__类的方法名

9、说几个你知道的PHP的设计模式?

单例模式: 保证一个类仅有一个实例,并提供一个访问他的全局访问点例如框架中的数据库连接

简单工厂模式: 它具有创建对象的某些方法,可以使用工厂类创建对象,而不直接使用 new。例如初始化数据库的时候会用到,比如MySQL,MSSQL

策略模式: 针对一组算法,将每一个算法封装到具有共同接口的独立的类中,例如进入个人主页时,根据浏览者的不同,给予不同的显示与操作

注册模式: 提供了在程序中有条理的存放并管理一组全局对象 (object),例如ZF框架中的Zend_Registry::set

适配器模式: 将不同接口适配成统一的API接口,例如数据操作有mysql、mysqli、pdo等,可利用适配器模式统一接口

观察者模式: 一个对象通过添加一个方法使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。例如实现实现消息推送

装饰器模式: 不修改原类代码和继承的情况下动态扩展类的功能,例如框架的每个Controller文件会提供before和after方法

迭代器模式: 提供一个方法顺序访问一个聚合对象中各个元素,在PHP中将继承 Iterator 类

原型模式: 实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。

10.对于大流量的网站,您采用什么样的方法来解决访问量问题?

首先,确认服务器硬件是否足够支持当前的流量。

其次,优化数据库访问。

第三,禁止外部的盗链。

第四,控制大文件的下载。

第五,使用不同主机分流主要流量

第六,使用流量分析统计软件。

PHP笔试你要做好充分的准备才能有备无患,不打无准备之仗!凡事多记多背,积少成多,这样才能厚积薄发,到真正发挥时,才不至于那么吃力!

如若上文有不对之处,还望技术大牛指正,欢迎在文章下部进行留言交流。

10道PHP常见的笔试题,100位程序猿笔试有90位遇到过!

转载请注明:PHP学习 » 10道PHP常见的笔试题,100位程序猿笔试有90位遇到过!

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址