PHP程序员搜狐2019年面试题和答案解析

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

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

A、0

B、1

C、2

D、3

参考答案:D

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

2.PHP单例模式操作描述错误的是?

A、单例模式第一次实例会被建立以后执行可以直接使用

B、需要一个保存类的唯一实例的静态成员变量

C、构造函数和克隆函数必须声明为私有的

D、必须提供一个访问这个实例的公共的静态方法

参考答案:A

答案解析:PHP中,所有的变量无论是全局变量还是类的静态成员,都是页面级的,每次页面被执行时, 都会重新建立新的对象,都会在页面执行完毕后被清空,这样似乎PHP单例模式就没有什么意义了, 所以PHP单例模式只是针对单次页面级请求时出现多个应用场景并需要共享同一对象资源时有意义

3.下面那个不是mysql存储引擎的锁类型?

A、表锁

B、页锁

C、行锁

D、无

参考答案:B

答案解析:mysql中myisam是有表锁,innodb是行锁,基于索引加锁,如果where条件没有索引,是所有行加锁;sql server才有页锁

(加入群677079770获取更多面试题答案。)

4.以下哪条不是PHP语言的特性?

A、开源

B、免费

C、基于客户端

D、便捷高效

参考答案:C

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

 

5.关于PHP模式修饰符说法错误的是?

A、i 大小写不敏感匹配

B、m ^将只匹配字符串的开头

C、x 空白和#注释将被忽略

D、将替换后的字符串作为php代码评估执行

参考答案:B

答案解析:m为增强的行锚点模式,\\n的前后也会被认为结束和开始

(加入群677079770获取更多面试题答案。)

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

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

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

C、中间件是代理模式

D、中间件是中介模式

参考答案:C

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

(加入群677079770获取更多面试题答案。)

7.要激活GD库,必须启用配置文件中的( )命令

A、php_gd2.dll

B、PHP.dll

C、PHP.ini

D、php_mbstring.dll

参考答案:A

答案解析:PHP中要想使用GD库必须启用php_gd2.ll动态连接库文件

8.关于在PHP中的socket,说法错误的是

A、可使用fsocketopen函数建立socket连接

B、工作在第七层,可基于TCP和UDP协议

C、在PHP中默认超时时间是30秒

D、工作在第四层,可基于TCP和UDP协议

参考答案:B

答案解析:工作在第四层,可基于TCP和UDP协议 在PHP中默认超时时间是30秒

9.JSON格式数据,错误的是?

A、JSON一种轻量级的数据交换格式

B、JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)

C、这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。

D、值是无序列表

参考答案:D

答案解析:值是有序列表

10.关于PHP数组排序原理,错误的是?

A、申请n个额外空间

B、遍历双链表

C、排序后单链表中节点的位置发生变化,因而调整指定指向

D、设置HashTable的pListTail

参考答案:C

答案解析:1.申请n个额外空间 2.遍历双链表 3.调用排序函数zend\_qsort(内部是快速排序算法)对数组排序 4.排序后,双链表中节点的位置发生变化,因而调整指定指向 5.遍历数组,分别设置每一个节点的pListLast和pListNext 6.设置HashTable的pListTail

11.关于Redis的应用场景,以下说法不正确的是?

A、交集,并集,差集

B、计数器、队列

C、排行榜

D、新闻发布系统

参考答案:D

答案解析:缓存——热数据、计算器、队列、位操作、最新列表、分布式锁与单线程机制、交集,并集,差集、排行榜,这些都是典型的 redis处理场景。答案为D

12.关于漏洞扫描的描述,以下哪项是错误的?

A、漏洞扫描是一种基于网络远程检测目标网络或主机安全性脆弱性的技术,可以被用来进行模拟攻击实验和安全审计.

B、漏洞扫描用来探测目标主机系统是否存在漏洞,一般是对目标主机进行特定漏洞的扫描.

C、漏洞扫描就是一种被动的防范措施,可以有效避免黑客攻击行为.

D、可以根据Ping扫描和端口扫描的结果进行漏洞扫描.

参考答案:C

答案解析:漏洞扫描是一种主动的防范措施,能有效避免黑客攻击行为,做到防患于未然安全扫描就是一种主动的防范措施

13.PHP程序使用utf-8编码, 以下程序输出结果是什么?

A、9

B、13(gbk)

C、18

D、17(utf8)

参考答案:D

答案解析:strlen() 函数返回字符串的长度。utf-8编码一个汉字是3个字符,5个英文字符+3字符\*4个中文=17个字符

14.栈和队列具有相同的()

A、抽象数据类型

B、逻辑结构

C、存储结构

D、运算

参考答案:B

答案解析:线性表、栈、队列的逻辑结构是一样的,都属于线性结构。只是他们对数据的运算不同,从而表现出不同的特点

15.为什么InnoDB表要建议用自增列做主键?

A、使用自增列(INT/BIGINT类型)做主键,这时候写入顺序是自增的,和B+数叶子节点分裂顺序一致

B、无

C、该表不指定自增列做主键,同时也没有可以被选为主键的唯一索引(上面的条件),这时候InnoDB会选择内置的ROWID作为主键,写入顺序和ROWID增长顺序一致

D、使用自增列(INT/BIGINT类型)做主键,这时候写入顺序是自增的,和B+数叶子节点分裂顺序一致; 该表不指定自增列做主键,同时也没有可以被选为主键的唯一索引(上面的条件),这时候InnoDB会选择内置的ROWID作为主键,写入顺序和ROWID增长顺序一致; 除此以外,如果一个InnoDB表又没有显示主键,又有可以被选择为主键的唯一索引,但该唯一索引可能不是递增关系时(例如字符串、UUID、多字段联合唯一索引的情况),该表的存取效率就会比较差

参考答案:D

答案解析:1.InnoDB引擎表是基于B+树的索引组织表(IOT); 2.每个表都需要有一个聚集索引(clustered index); 3.所有的行记录都存储在B+树的叶子节点(leaf pages of the tree); 4.基于聚集索引的增、删、改、查的效率相对是最高的; 5.如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择其作为聚集索引; 6.如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引; 7.如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。 因此: 1.使用自增列(INT/BIGINT类型)做主键,这时候写入顺序是自增的,和B+数叶子节点分裂顺序一致; 2.该表不指定自增列做主键,同时也没有可以被选为主键的唯一索引(上面的条件),这时候InnoDB会选择内置的ROWID作为主键,写入顺序和ROWID增长顺序一致; 3.如果一个InnoDB表又没有显示主键,又有可以被选择为主键的唯一索引,但该唯一索引可能不是递增关系时(例如字符串、UUID、多字段联合唯一索引的情况),该表的存取效率就会比较差

16.对以下Javascript代码说法正确的是?

A、值为 0

B、obj2引用了obj1的方法

C、执行call时,函数里的this指向obj1

D、最后obj1的value值为6

参考答案:B

答案解析:调用了 call ,则obj2 , add的this就指向了 obj2 。就像obj2借用了obj1的方法

17.以下关于引用说法错误的是?

A、引用不是C的指针

B、引用不允许用两个变量来指向同一个内容

C、用引用可以传递变量

D、可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。

参考答案:B

答案解析:引用是允许用两个变量来指向同一个内容的

18.GoAccess虽然很强大但是他不能做以下哪项工作?

A、生成统计数据带宽统计

B、可生成HTML报告

C、可发送HTTP请求

D、各HTTP状态码统计

参考答案:C

答案解析:GoAccess:是一款开源、实时,运行在命令行终端下的web日志分析工具。该工具提供快速、 多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据 GoAccess主要以统计为主

19.关于线程的,说法错误的是?

A、线程是进程的一个实体,是CPU调度和分派的基本单位

B、它是比进程更小的能独立运行的基本单位

C、线程和进程一样拥有系统资源

D、线程自己基本上不拥有系统资源

参考答案:C

答案解析:线程是指进程内的一个执行单元,也是进程内的可调度实体。线程自己基本上不拥有系统资源

20.关于php文件指针的说法错误的是?

A、feeek() 移动文件指针到指定位置

B、fcreate() 用于创建一个文件

C、rewind()将文件指针设为文件流的开头

D、feof() 测试文件指针是否到达文件结束的位置

参考答案:B

答案解析:php中 打开和创建文件都是fopen()函数,不存在fcreate()函数

21.下边是php的函数而不是语言结构的是?

A、eval()

B、require_once()

C、list()

D、empty()

参考答案:B

答案解析:仅仅是提纲挈领、提醒下大家注意 php的语言结构和函数这个点、可能过多的时候我们认为empty、list、isset等这类的是函数、实际上不上。 语言结构列表 : echo() print() die() isset() unset() include(),注意,include_once()是函数 require(),注意,require_once()是函数 array() list() empty()

22.该正则可以匹配下列哪个字符串? /^sjm/

A、absjm

B、phpsjm

C、sjmphp

D、phpsimd

参考答案:C

答案解析:该正则匹配以sjm开头的字符串

23.下列哪个选项可以查看php运行模式?

A、php -r phpinfo();|find / grep"Server API"

B、php -r "echo php_sapi_name();"

C、phpinfo();

D、以上都是

参考答案:D

答案解析:三个都可以查看php的运行模式

24.以下inode不包含的是?

A、文件的读写权限

B、文件的位置

C、当前目录下的文件数

D、文件的时间戳

参考答案:C

答案解析:inode中存的是该文件种的信息,包含文件的字节数,uid和gid,读写执行权限,时间戳ctime、mtime、atime,链接数:有多少个文件名指向这个inode,文件数据block位置

25.以下代码输出的结果是?

A、1

B、2

C、3

D、4

参考答案:A

答案解析:if($str==0),字符串和数字比较是否相等, 相当于 把$str 字符串隐性转换为数字,然后再比较,相当于 if( intval($str) == 0 ) 。if($str==0) 判断 和 if( intval($str) == 0 ) 是等价的,而和 if ($str) 是不一样的。if ($str) 可以判断 $str值有没有被初始化。有没有付值,只要付值,就返回true。 当然你也可以使用 $str="字符串";if($str===0){ echo "返回了true.";} ,就是 判断 $str的数据类型 和值 都和0的值 数据类型一样,才可以返回true

26.把CSS样式表与HTML网页关联,不正确的方法是( )

A、在HTML文档的<head>标签内定义CSS样式

B、用@import引入样式表文件

C、在HTML文档的<!-- -->标签内定义CSS样式

D、用<link>标签链接网上可访问的CSS样式表文件

参考答案:C

答案解析:是HTML注释的表示方式,在这里定义CSS样式无效。

27.一下哪个不是PHP的运行模式?

A、CGI

B、FastCGI

C、apache2handler

D、apache

参考答案:D

答案解析:前三个是常用的运行模式,apache是web服务器软件

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

1.分库分表之后,id 主键如何处理?

A、单库生成自增 id

B、设置数据库 sequence 或者表自增字段步长

C、UUID

D、snowflake 算法

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

答案解析:

snowflake 算法

A、B、C 也是理论可行的,但是都各自有缺点,最好用snowflake 算法。

snowflake 算法是 twitter 开源的分布式 id 生成算法,采用 Scala 语言实现,是把一个 64 位的 long 型的 id,1 个 bit 是不用的,用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。

1 bit:不用,为啥呢?因为二进制里第一个 bit 为如果是 1,那么都是负数,但是我们生成的 id 都是正数,所以第一个 bit 统一都是 0。 41 bit:表示的是时间戳,单位是毫秒。41 bit 可以表示的数字多达 2^41 - 1,也就是可以标识 2^41 - 1 个毫秒值,换算成年就是表示69年的时间。 10 bit:记录工作机器 id,代表的是这个服务最多可以部署在 2^10台机器上哪,也就是1024台机器。但是 10 bit 里 5 个 bit 代表机房 id,5 个 bit 代表机器 id。意思就是最多代表 2^5个机房(32个机房),每个机房里可以代表 2^5 个机器(32台机器)。 12 bit:这个是用来记录同一个毫秒内产生的不同 id,12 bit 可以代表的最大正整数是 2^12 - 1 = 4096,也就是说可以用这个 12 bit 代表的数字来区分同一个毫秒内的 4096 个不同的 id。

不定期分享限时内容:(加入群677079770获取更多面试题答案和学习资料。)

★腾讯高级PHP工程师笔试题目

★亿级PV高并发场景订单的处理

★laravel开发天猫商城组件服务

★战旗TV视频直播的架构项目实战 

原文地址:https://www.cnblogs.com/993089249a/p/11613149.html

时间: 2024-07-31 10:26:51

PHP程序员搜狐2019年面试题和答案解析的相关文章

程序员Java架构师多线程面试题和回答解析

当我们在Java架构师面试的过程中常见的多线程和并发方面的问题肯定是必不可少的一部分.那么在面试之前我们更应该多准备一些关于多线程方面的问题. 面试官只是想确信面试者有足够的Java线程与并发方面的知识,因为有很多只停留于表面的理论知识,归根结底还是功力不够扎实.下面这些是我在不同时间不同地点喜欢问的Java线程问题,供大家参考. 15个Java架构师多线程面试题及回答解析 1)你将如何使用threaddump?你将如何分析Threaddump? 在UNIX中你可以使用kill-3,然后thre

奇虎360PHP工程师2019年面试题和答案解析

一.单选题(共29题,每题5分) 1.以下代码 a.php 输出的结果是? a.php 的代码如下: b.php的代码如下: A.foo in a B.什么也不输出 C.报错 D.foo in b 参考答案:C 答案解析: 答案是C 想让大家思考的是.为什么在b里边使用了return.依然可以找到foo函数的定义.并且报错 Cannot redeclare foo() ? 因为php是在运行之前先解释执行.为避免表述不精确.附上文档原文:Note that because PHP process

剑指Offer——当当+搜狐+好未来笔试题+知识点总结

剑指Offer--当当+搜狐+好未来笔试题+知识点总结 情景回顾 时间:2016.9.21 15:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:当当笔试.搜狐笔试.好未来笔试 3场笔试中好未来相对简单点. 好未来编程题 马踏棋盘(贪心算法) ??马踏棋盘是经典的程序设计问题之一,主要的解决方案有两种:一种是基于深度优先搜索的方法,另一种是基于贪婪算法的方法.第一种基于深度优先搜索(DFS)的方法是比较常用的算法,深度优先搜索算法也是数据结构中的经典算法之一,主要是采用递归的

Java程序员的10道XML面试题

如今,面对web开发人员的Java各种面试中,XML面试题在各种编程工作的面试中很常见.XML是一种成熟的技术,经常作为从一个平台到其他平台传输数据的标准.XML面试问题包括用于转换XML文件的XSLT技术,以及XPATH,XQuery等各种XML技术和XML基础知识. 笔者从论坛收集看到常见的XML面试问答题.这些问题大部分在Java面试中会问到,同时在C,C++,Scala或其他语言的编程面试中同样很有用处.作为编程人员所需要的技能之一,在任何技术工作面试之前准备一些XML问题是很有意义的.

滴滴出行2019年前端工程师面试题和答案解析

一.单选题(共26题,每题5分) 1.在进行金融业务系统的网络设计时,应该优先考虑() 原则. A.先进性 B.开放性 C.经济性 D.高可用性 参考答案:D 答案解析: 网络设计一般要遵循一些原则,包括:先进性:建设一个现代化的网络系统,应尽可能采用先进而成熟的技术,应在一段时间内保证其主流地位,但是太新的技术,也有不足之处:意识有可能不成熟:而是标准可能还不晚辈.不统一:三是价格高:四是技术支持力量可能不够.开放性:采用国际通用的标准和技术获得良好的开放性,是网络互连互通的基础经济型:在满足

蓝鸥成都整理Java程序员的10道XML面试题

蓝鸥成都给大家整理了10道常见的XML面试问答题,这些问题大部分在Java面试中会问到.XML并不依赖于其他编程语言,同SQL一样是编程人员所需要的技能之一,因此在任何技术工作面试之前准备一些XML问题是很有意义的. XML面试问答 这些问题并不很难但涵盖了XML技术的一些重要领域,比如DTD,XML Schema,XSLT转换,XPATH检索,XML绑定,XML解析器以及XML的基本知识,比如命名空间,校验,属性,元素等. 问题1:XML是什么? 答:XML即可扩展标记语言(Extensibl

小米2019年PHP工程师面试题和答案解析

一.单选题(共29题,每题5分) 1.PHP面向对象方法重写描述错误的是? A.子类必须继承父类 B.子类可以重写父类已有方法 C.重写之后子类会调用父类方法 D.子类也可以具有与父类同名的属性,进行属性覆盖 参考答案:C 答案解析:重写之后子类不会再去调用父类的方法,而是直接调用自身的方法. 2.php选项/信息函数作用错误的是? A.phpinfo() 输出关于 PHP 配置的信息 B.php_sapi_name() 返回 web 服务器和 PHP 之间的接口类型 C.ini_set() 为

程序员风格的修真小说

原文为知乎问题"怎么写出一本程序员风格的修真小说?"下的答案.作者李昭鸿授权本站转载.以下为正文. 终有一天我手中的编译器将成为我灵魂的一部分,这世界在我的眼中将被代码重构,我将看到山川无尽银河无垠都汇成二进制的数字河流,过往英雄都在我脑海眼前一一浮现,而我听到无数码农跪倒在我的程序面前呼喊. 他们叫我代码之神. 到那个时候,我想我一定可以找回你. 一丶 这是一个属于代码的修真世界. 这世界里的每一个人,每一个东西,包括高山大海,刀剑风云,其本质都是一串数字流. 打个比方,如果你知道一

一篇写给程序员的提问艺术(转)

作为一个刚入it界的php菜鸟,我感觉自己需要学很多程序员的基本素养,学习如何学习,有效率的学习,精确地学习,热情的学习,加油, 这是一篇关于提问的文章分享给大家吧, (2009年的更新:本文来自2005年的白云黄鹤BBS,未经排版,四年来,文末一直保留有英文原文出处并注明链接) 这个版上太多的问题,不能让我以很愉快的心情来解答,于是,我放弃了强忍着指责别人的心情找到了这篇<提问的艺术>(两年前我在HomePage版张贴过),真诚的希望那些又困难又期望得到帮助的新手朋友们抽时间看看,问&quo