2020最新PHP阿里面试和答案解析

1、单选题(共27题,每题5分)

1.Memcache与Redis的比较错误的是?php

A、Memcache过时后,不删除缓存,会致使下次取数据数据的问题,Redis有专门线程,清除缓存数据;mysql

B、Memcache和redis都是只支持单线程;CPU利用方面Memcache和redis部分伯仲linux

C、Memcache只支持key value存储方式,Redis支持更多的数据类型,好比Key value,hash,list,set,zset;nginx

D、Memcache自身不支持持久化,Redis支持持久化;正则表达式

参考答案:Bredis

答案解析:sql

Memcache支持多线程,redis支持单线程;CPU利用方面Memcache优于redis数据库

2.mysql5.7中关于json类型的说明,不对的是那个json

A、JSON数据能够作有效性检查数组

B、json数据中,仍是须要遍历全部字符串才能找到数据

C、JSON使得查询性能提高

D、JSON支持部分属性索引,经过虚拟列的功能能够对JSON中的部分数据进行索引

参考答案:B

答案解析:

原生的JSON优点以下: 1. 存储上相似text,能够存很是大的数据。 2. JSON有效性检查:插入的数据必须是JSON类型的字符串才行。 3. 相比于传统形式,不须要遍历全部字符串才能找到数据。 4. 支持索引:经过虚拟列的功能能够对JSON中部分的数据进行索引

3.执行下面代码$x会变成什么值呢?

$x=NULL;

if('0xFF'==255){

$x=(int)'0xFF';}

PHP

A、NULL

B、255

C、0

D、false

参考答案:C

答案解析:

正确答案:C 答案解析:oxFF是一个十六进制数,这时不会转整型比较,会先将16进制数字转换成10进制数字,再作比较。 使用int函数,PHP会使用is_numeric_string 判断字符串是否包含十六进制数字而后进行转换。发现0xff的0后面无数字,故为0.

4.大数据的数据库 (NoSQL)与关系型数据库的区别:

A、    水平扩展与垂直扩展

B、    是否支持事务的 ACID

C、    应用中两种数据库互相补充

D、    以上都是

参考答案:D

答案解析:无

5.关于判断文件类型,如下说法正确的是?

A、根据文件的扩展名能够正确判断文件的类型

B、根据文件的特征值能够正确判断文件类型

C、根据文件的大小及特征值能够正确判断文件类型

D、经过任何方法也没法100%肯定文件类型

参考答案:D

答案解析:任何方式均可以伪造,因此咱们只能经过方法无限接近,而没法彻底保证能够判断正确。

6.如下命令描述争取的是?

ps -aux --sort -pcpu,+pmem | head -n 10

A、查询CPU使用排名前十的程序

B、查询访问CPU十次以上的程序

C、查询cpu和缓存访问前十的程序

D、查询cpu和内存前十的记录

参考答案:D

答案解析:ps -aux --sort -pcpu,+pmem | head -n 10 经过aux命令查询cup和内存前十的记录

7.关于json说法错误的是:

A、json_encode只能处理utf-8编码的数据

B、能够用sprintf组装或解析json字符串

C、json_encode只能编码数组

D、json_decode能够将json字符串解码成对象

参考答案:C

答案解析:json\_encode 能够编码成数组和对象

8.如下关于进程和程序的区别的说法,错误的是?

A、程序没有状态,而进程是有状态的

B、程序是一组有序的静态指令,进程是一次程序的执行过程

C、程序能够长期保存,进程是暂时的

D、程序只能在前台运行,而进程能够在前台或后台运行

参考答案:D

答案解析:程序是一段可执行的代码文件,在linux上就是文件。 程序运行时就被称为进程,即进程是运行状态的程序。

9.PHP面向对象原则理解错误的是?

A、接口分离原则

B、依赖原则

C、替换原则

D、多项职责原则

参考答案:D

答案解析:五大基本原则 单一职责原则SRP(Single Responsibility Principle) 是指一个类的功能要单一,不能一应俱全。如同一我的同样,分配的工做不能太多,不然一天到晚虽然忙忙碌碌的,但效率却高不起来。 开放封闭原则OCP(Open-Close Principle) 一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。好比:一个网络模块,原来只服务端功能,而如今要加入客户端功能, 那么应当在不用修改服务端功能代码的前提下,就可以增长客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。 替换原则(the Liskov Substitution Principle LSP) 子类应当能够替换父类并出如今父类可以出现的任何地方。好比:公司搞年度晚会,全部员工能够参加抽奖,那么不论是老员工仍是新员工, 也不论是总部员工仍是外派员工,都应当能够参加抽奖,不然这公司就不和谐了。 依赖原则(the Dependency Inversion Principle DIP) 具体依赖抽象,上层依赖下层。 假设B是较A低的模块,但B须要使用到A的功能,这个时候,B不该当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到 了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。经过上层模块难以免依赖下层模块,假如B也直接依赖A的实现,那么就可能形成循环依赖。一个常见的问题就是编译A模块时须要直接包含到B模块的cpp文件,而编译B时一样要直接包含到A的cpp文件。 接口分离原则(the Interface Segregation Principle ISP) 模块间要经过抽象接口隔离开,而不是经过具体的类强耦合起来。

10.三我的独立地破译一份密码,已知各人能译出的几率分别为 1/5,1/4,1/3,则密码能被破译的几率为 ?

A、1/60

B、3/5

C、59/60

D、13/30

参考答案:B

答案解析:题目中,至少有一人能破译密码和三人都不能破译密码是对立事件。 因此至少有一人能译出的几率=1-三人都没译出的几率=1-(1-1/5)(1-1/3)(1-1/4)=1-2/5=3/5。

11.PHP数组类型与其余类型转换,如下错误的是?

A、int,float,string,boolean,resource类型(array)$a等同于 array($a)

B、(array)object 键名是对象成员变量名,键值是对象成员属性

C、array(false)=[] 空数组

D、(array)null = [] 空数组参考答案:C

答案解析:int,float,string,boolean,resource类型(array)$a等同于 array($a) (array)object 键名是对象成员变量名,键值是对象成员属性 (array)null = \[\] 空数组。

12.如下关于结构型模式说法错误的是?

A、结构型模式能够在不破坏类封装性的基础上,实现新的功能

B、结构型模式主要用于建立一组对象

C、结构型模式能够建立一组类的统一访问接口

D、结构型模式能够在不破坏类封装性的基础上,使得类能够同未曾估计到的系统进行交互

参考答案:B

答案解析:结构型(structural):处理类或对象间的组合。

_13_小王的部门领导给下达了一个任务:因为网站某个栏目访问量很大,所以须要专门给网站的某个url请求作负载均衡,那么该经过什么集群软件实现呢?

A、LVS集群软件

B、oneproxy集群软件

C、haproxy集群软件

D、keepalived集群软件

参考答案:C

答案解析:略。

14.如下文件被称为纯文本文件或ASCII文件的是()。

A、 以.EXE为扩展名的文件

B、 以.TXT为扩展名的文件

C、 以BMP为扩展名的文件

D、 以.DOC为扩展名的文件

参考答案:B

答案解析:纯文本文件或ASCII文件通常以txt为扩展名。

15.如下可以删除一列的是

A、alter table emp remove addcolumn

B、alter table emp drop column addcolumn

C、alter table emp delete column addcolumn

D、alter table emp delete addcolumn

参考答案:B

答案解析:drop 删除列 表 delete 删除行

16.如下哪一个后缀的文件类型不是文本文件?

A、word

B、Excel

C、txt

D、pdf

参考答案:D

答案解析:pdf是二进制文件。

17如下代码 a.php 输出的结果是?

a.php 的代码以下:

<?php

functionfoo() {    

echo'foo in a';

    }

include'b.php';

foo();

b.php的代码以下:

<?php

return;

functionfoo() {    

echo'foo in b';

    }

A、foo in a

B、什么也不输出

C、报错

D、foo in b

参考答案:C

答案解析:答案是C 想让你们思考的是、为何在b里边使用了return、依然能够找到foo函数的定义、而且报错 Cannot redeclare foo() ? 由于php是在运行以前先解释执行、为避免表述不精确、附上文档原文:Note that because PHP processes the file before running it, any functions defined in an included file will still be available, even if the file is not executed.

18.如下关于非对称加密的说法错误的是

A、加密速度慢

B、安全性高

C、双方须要同步密钥

D、能够进行数字签名

参考答案:C

答案解析:非对称加密即加密解密不是同一把密钥,目的就是提升安全性,天然速度可能会下降。数字签名是非对称加密的典型应用。

19.关于Laravel中间件错误的是?

A、运行Artisan 命令 make:middleware 建立新的中间件

B、可定义前置 & 后置中间件

C、中间件是代理模式

D、中间件是中介模式

参考答案:C

答案解析:运行Artisan 命令 make:middleware 建立新的中间件 可定义前置 & 后置中间件

20.如下能够将PHP变量序列化而且保存到文件中的是?

A、serialize()

B、json_encode()

C、var_export()

D、以上均可以

参考答案:C

答案解析:var_export()第二个参数为TRUE,能够返回变量的表示。

21.关于php配置选项错误的是

A、开启 short_open_tag 容许使用PHP 代码开始标志的缩写形式(<? ?>)

B、若是启用了 magic_quotes_runtime,大多数返回任何形式外部数据的函数,包括数据库和文本段将会用反斜线转义引号

C、由于能够在运行时使用ini_set对配置选项进行设置,因此display_errors能够一直开启

D、PHP 的安全模式是为了试图解决共享服务器(shared-server)安全问题而设立的

参考答案:C

答案解析:尽管 display\_errors 也能够在运行时设置 (使用 ini\_set()), 可是脚本出现致命错误时任何运行时的设置都是无效的。 由于在这种状况下预期运行的操做不会被执行。这样将会暴露敏感信息。

22.关于PHP数组Bucket结构体,说法错误的是?

A、void *pData 指向value

B、void *pKey 指向key

C、void *pDataPtr 指向value的指针

D、struct bucket *pLast 存放同一个Bucket内的上一个元素

参考答案:B

答案解析:void \*pData 指向value void \*pDataPtr 指向value的指针 struct bucket \*pNext 存放同一个Bucket内的下一个元素 struct bucket \*pLast 存放同一个Bucket内的上一个元素。

23.设计性能较优的关系模式称为规范化,规范化主要的理论依据是( )。

A、关系规范化理论

B、关系运算理论

C、关系代数理论

D、数理逻辑

参考答案:A

答案解析:A。

24.从用户在浏览器中输入网址并回车,到看到完整的页面,中间都经历了哪些过程?

A、 浏览器->url->dns->ip->port->nginx->tcp->server name->php-fpm/fast cgi->php

B、 浏览器->url->dns->ip->tcp->port->nginx->server name->php-fpm/fast cgi->php

C、 浏览器->url->dns->ip->port->tcp->nginx->server name->php->php-fpm/fast cgi

D、 浏览器->url->dns->ip->port->tcp->nginx->server name->php-fpm/fast cgi->php

参考答案:D

答案解析:一个PHP的Web请求:

00001.浏览器发送一个URL请求 2.DNS开始解析域名 3.获取到IP后开始访问IP和Port 4.开发发送TCP请求到Nginx 5.Nginx解析server name ,而后发送到 php-fpm管理进程 6.php-fpm把具体的请求交给PHP最后执行。

25.阅读下面PHP代码,并选择输出结果( )

classA{publicstatic$num=0;publicfunction\_\_construct(){ self::$num++;}}newA();newA();newA();echoA::$num;

A、0

B、1

C、2

D、3

参考答案:D

答案解析:static属性常驻内存。

26.如下哪条不是PHP语言的特性?

A、开源

B、免费

C、基于客户端

D、便捷高效

参考答案:C

答案解析:PHP语言的特性为:开源、免费和便捷高效。

27.关于PHP数组key和value的限制条件,说法正确的是?

A、key只能是int或string类型,value可使任何类型

B、key能够是任何类型,value能够是任何类型

C、key能够是任何类型,value只能是int或string类型

D、key只能是int或string类型,value只能是int或string类型

参考答案:A

答案解析:key只能是int或string类型,value可使任何类型

2、多选题(共3题,每题5分)

1.假设当前屏幕分别率为1024×768,定义一个居中的占屏幕一半大小的表格的语句是

A、<TABLE ALIGN=”CENTER” WIDTH=”50%”></TABLE>

B、<TABLE ALIGN=”CENTER” WIDTH=”512″></TABLE>

C、<DIV ALIGN=”CENTER”><TABLE WIDTH=”512″></TABLE></DIV>

D、<CENTER><TABLE WIDTH=”50%”></TABLE></CENTER>

参考答案:A,B,C,D

答案解析:center标签HTML5不推荐使用了...这种没有语义的纯样式标签是不符合w3c规范的,MDN上也有相关说明。

2.下列正则表达式不能匹配”www.innotechx.com”的是:

下列正则表达式不能匹配”www.innotechx.com”的是:

A、^w+.w+.w+$

B、[w]{0,3}.[a-z]*.[a-z]+

C、^w.*com$

D、[w]{3}.[a-z]{11}.[a-z]

参考答案:A,D

答案解析:首先来看A选项,^表示匹配字符串的开始,而 w 和 . 是没有特殊意义的,千万不要看错成是“\w(匹配字母或数字或下划线或汉字)”了,+ 表示重复一次或者屡次,$是匹配字符串的结束。因此该选项会匹配 [www.www.www](http://www.www.www)(其中w可重复一次以上)。

B选项,[w]{0,3}限定符,表示将w重复0到3次, “ . ”无特殊意义,* 表示重复任意次,包括零次,[a-z]表示匹配a到z的字母,因此就是匹配a到z中的某一字母任意次重复。后面这个相赞成思,就是+号是重复一次以上。连起来看,是能够匹配选项的。

C选项,与上述选项相同,^先匹配字符串开始,而后包含一个 w ,和 " . "重复任意次,最后以com结尾。这个正则会匹配包含了 “wcom”的字符串,可是w要是开头,com要是结尾,因此能够匹配选项,你们能够本身试试看。

D选项,重复三次w,而后一个" . ",可是后面这里要重复11次a到z中的某一字母,数了下题目中选项只有9个字母,后面就不要看啦,已经错啦~

废话 有点多吼,有说错了请指出,刚学也不怎么懂~。

3为何大型网站要使用消息队列?

A、解耦

B、异步

C、削峰

D、大数据处理

参考答案:A,B,C

答案解析:消息队列常见的使用场景有不少,可是比较核心的有 3 个:解耦、异步、削峰 大数据处理,有相应的处理办法,和消息队列关系不大。

相关文章
相关标签/搜索