Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2018年小米高级 PHP 工程师面试题(模拟考试卷)

2018年小米高级 PHP 工程师面试题(模拟考试卷)

作者头像
码农编程进阶笔记
发布于 2021-07-20 07:09:46
发布于 2021-07-20 07:09:46
6670
举报
1、通过哪一个函数,可以把错误转换为异常处理?

A:set_error_handler B:error_reporting C:error2exception D:catch

正确答案:A

答案分析:set_error_handler() 可指定一个回调函数,错误发生时,会自动通过指定的回调函数处理。在回调函数中抛出新的异常即可。

2、下列哪个shell函数的描述是正确的?

A:shell函数可以先调用后定义 B:shell函数需使用关键字function定义 C:shell函数内的变量可以声明为局部变量 D:shell函数只能通过return返回值,1是成功,0是失败

正确答案:C

答案分析:shell函数必须先定义在调用;声明时,无需使用关键字;通过local可以定义函数内的局部变量;shell函数返回值,0是成功,非0是错误,其他选项正确

3、下列关于全文检索技术的说法,不对的是:

A: Solr是新一代的全文检索组件,它比Lucene的搜索效率高很多,还能支持HTTP的访问方式,PHP调用Solr也很方便。 B: MySQL中把一个字段建立FULLTEXT索引,就可以实现全文检索,目前MyISAM和InnoDB的table都支持FULLTEXT索引。 C: Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL做全文搜索,它可以提供比数据库本身更专业的搜索功能。 D: Lucene附带的二元分词分析器CJKAnalyzer切词速度很快,能满足一般的全文检索需要。

正确答案:A

答案分析: Solr是新一代的全文检索组件,它基于Lucene,所以说它比Lucene快就是胡扯 :)

4、关于单例模式的说法,错误的是?

A:单例模式的目的是确保在全局环境中,一个类只能有一个实例存在 B:单利模式一般要讲构造函数设置为 private C:只需要将构造函数设置为private 即可确保全局中只有一个实例 D:连接数据库的功能通常用单例模式实现

正确答案:C

答案分析:构造函数设置为private,仅能确保无法通过 new 创建新实例,但仍可以通过 clone、反序列化等方式创建多个实例。

5、正则的引擎表述错误的是?

A 正则引擎主要可以分为两大类:一种是DFA,一种是NFA。 B 一般而论,NFA引擎则搜索更快一些。但是DFA以表达式为主导,更容易操纵,因此一般程序员更偏爱DFA引擎! C NFA表达式主导,DFA文本主导. D 可以使用是否支持忽略优先量词和分组捕获来判断引擎类型:支持 NFA,不支持 DFA

正确答案:B

答案分析:正确的说法应该是:一般而论,DFA引擎则搜索更快一些。但是NFA以表达式为主导,更容易操纵,因此一般程序员更偏爱NFA引擎!

6、方框中的正则表达式能与以下哪些选项匹配?

/.\123\d/

A. **123

B. ****1234 C. 1234 D.123

正确答案:B

答案分析:本题的要点是理解这个正则表达式的含义——从左往右,首先是零个或多个任意字符(.),跟着是一个星号(),然后是 123,最后是一个数字。因此答案是B。

7、如下关于数据库的说法,哪个是错误的?

A:为了效率数据库可以有多个读库 B:数据库可以用主从做热备 C:数据库不能提供多主多从架构 D: 数据库主从是通过日志同步的

正确答案:C

答案分析: 数据库可以提供多主多从架构。

8、下面哪个不是XSS漏洞的修复方式?

A:对参数进行htmlspecialchas过滤 B:对参数使用白名单过滤 C:不允许输入的内容显示到浏览器 D:禁止在js标签内输出用户输入的内容

正确答案:A

这类过滤可以解决尖括号类型的xss,无法解决js标签内的xss

9、下列哪一项不是PHP SAPI模式?

A.ISAPI B.CGI C.FastCGI D.RESTFUL APi

正确答案:D

答案分析:A~C是最常用的模式,D是一种接口的组织方式。

10、对一个大文件进行逐行遍历,如下方法性能较高的是?

A:写一个实现了IteratorAggregate 接口的类,通过该类使用foreach遍历。 B:使用file_get_contents 将文件内容一次性载入内存,然后逐行遍历。 C:通过exec函数,调用shell 工具遍历 D:使用别人写的类库

正确答案:A

答案分析:使用 IteratorAggregate 可将文件打开后通过移动指针的方式逐行遍历,不受文件大小影响。使用 file_get_contents 处理大文件很容易导致PHP内存溢出;调用exec 会产生额外的进程,影响性能;其他人写的类库质量不一定高。

11、如下选项,哪个不是设计模式应该遵循的原则?

A:组合优于继承 B:针对接口编程 C:尽可能降低耦合 D:尽量使用高性能的语法

正确答案:D 答案分析:设计模式的关注点在于代码的可维护性和可复用性,D选项不是设计模式关注的要点。

12、下列关于回溯的表达式错误的是?

A ab.lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmnghijklmn B ab.?lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmn C ab??c 匹配 abcdeflmnghijklmn 中的 abc D .*lmn 匹配 abcdeflmnghijklmn 中的 abcdeflmn

正确答案:D

答案分析:D是贪婪匹配,所以应该匹配到的结果是abcdeflmnghijklmn

13、函数中如果使用了try catch finally 语法结构,return 应该写在哪儿?

A:finally 中 B:try 中 C:catch 中 D:任意位置

正确答案:A

答案分析:try 中 return 后 finally 会继续执行,如果 finally 中也有return,则最终返回值为 finally 中 return 的值。

14、以下关于NOSQL的说法,不对的是:

A: Redis支持字符串、哈希、列表、集合、有序集合等数据结构,目前Redis不支持事务。 B: MongoDB支持CAP定理中的AP,MySQL支持CAP中的CA,全部都支持不可能存在。 C: MongoDB不用先创建Collection的结构就可以直接插入数据,目前MongoDB不支持事务。 D: Memcache既支持TCP协议,也支持UDP协议,我们可以把PHP的Session存放到Memcache中。

正确答案:A

答案分析:Redis支持事务。

15、Innodb 锁机制说法错误的是?

A:Innodb提供了表锁与行锁两种锁机制 B:Innodb的表锁所会在表变更的时候触发 C:Innodb下update时会自动给涉及到的行加上排他锁,并创建出一个镜像副本, 此时进行select 时查询的是镜像副本的数据 D:Innodb行锁状态下读不受影响,写会受影响(涉及到的数据)

正确答案:A

16、下列哪个是创建一个每周三01:00~04:00每3分钟执行执行一次的crontab指令?

A: 1,4 3 /bin/bash /home/sijiaomao/ok.sh B:/3 1,4 3 /bin/bash /home/sijiaomao/ok.sh C:/3 1-4 3 /bin/bash /home/sijiaomao/ok.sh D:/3 1-4 * /bin/bash /home/sijiaomao/ok.sh

正确答案:C

答案分析:A:每周三的1时4时每分钟执行一次 B:每周三的1时4时每3分钟执行一次 C:满足要求 D:每天的1时4时每3分钟执行一次

17、在拆分之前,系统中很多列表和详情页所需的数据是可以通过sql join来完成的。而拆分后,数据库可能是分布式在不同实例和不同的主机上,join将变得非常麻烦。下面哪种方法不能有效解决这个问题?

A 全局表,系统中所有模块都可能会依赖到的一些表在各个库中都保存。 B 字段冗余,“订单表”中保存“卖家Id”的同时,将卖家的“Name”字段也冗余,这样查询订单详情的时候就不需要再去查询“卖家用户表”。 C 主从复制,将数据库的读写分离。 D 数据同步,定时A库中的tbl_a表和B库中tbl_b关联,可以定时将指定的表做主从同步。 正确答案:C

答案分析:主从复制,将数据库的读写分离。只能扩容读并发,并不能缓解跨库join的问题。

18、关于网络IO模型,下列哪一项是正确的?

A.Select比Epoll更快 B.nginx使用的是select模型 C.apache支持select和epoll两种方式的切换 D.epoll能支持更大的并发

正确答案:D

答案分析:A epoll更快一些。B nginx使用epoll模型。

C apache只支持select

19、PHP执行的时候有如下执行过程:Scanning(Lexing) - Compilation - Execution - Parsing,其含义分别为:

A:将PHP代码转换为语言片段(Tokens)、将Tokens转换成简单而有意义的表达式、将表达式编译成Opocdes、顺次执行Opcodes B:将PHP代码转换为语言片段(Tokens)、将Tokens转换成简单而有意义的表达式、顺次执行Opcodes、将表达式编译成Opocdes C:将PHP代码转换为语言片段(Tokens)、将表达式编译成Opocdes、顺次执行Opcodes、将Tokens转换成简单而有意义的表达式 D:将PHP代码转换为语言片段(Tokens)、将表达式编译成Opocdes、将Tokens转换成简单而有意义的表达式、顺次执行Opcodes

正确答案:C

答案分析:正确答案为C,正确的顺序为:Scanning(Lexing)、Parsing、Compilation、Execution

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农编程进阶笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2019年腾讯PHP工程师面试题
第1题: PHP执行的时候有如下执行过程:Scanning(Lexing) - Compilation - Execution - Parsing,其含义分别为: A、将PHP代码转换为语言片段(Tokens)、将Tokens转换成简单而有意义的表达式、顺次执行Opcodes、将表达式编译成Opocdes B、将PHP代码转换为语言片段(Tokens)、将表达式编译成Opocdes、顺次执行Opcodes、将Tokens转换成简单而有意义的表达式 C、将PHP代码转换为语言片段(Tokens)、将To
码农编程进阶笔记
2021/07/20
5980
百度php工程师面试题及答案解析
考的是数组+和array_merge的区别 当下标为数值时,array_merge()不会覆盖掉原来的值,但array+array合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖). 当下标为字符时,array+array仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值.
php007
2020/05/22
1.1K0
PHP工程师面试题
1. Apache与Nginx大访问下性能描述正确的是? A、Apache所采用的epoll网络I/O模型非常高效 B、Nginx使用了最新的kqueue和select网络I/O模型 C、Apache进程执行PHP、输出HTML都得干,占用的资源多 D、nginx不可以做反向代理服务器 参考答案:C 答案解析: 1、Apache所采用的select网络I/O模型非常低效 2、Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型 3、Apache进程干的事情多:执行PHP、输出HTML都得干,占用的资源就多(CPU、内存) 2.下列哪种PHP运行模式在PHP5.3之后不再支持? A、CGI B、FASTCIG C、ISIPA D、CLI 参考答案:C 答案解析: 在PHP5.3以后,PHP不再有ISAPI模式,安装后也不再有php5isapi.dll这个文件。要在IIS6上使用高版本PHP,必须安装FastCGI扩展,然后使IIS6支持FastCGI。 3.yii小部件描述错误的是? A、小部件是面向对象方式来重用视图代码 B、创建小部件时仍需要遵循 MVC 模式,通常逻辑代码在小部件类,展示内容在视图中 C、小部件设计时应不是独立的,也就是说使用一个小部件时候,不可以直接丢弃它而不需要额外的处理 D、当小部件需要外部资源如 CSS, JavaScript图片等会比较棘手幸运的时候 Yii 提供资源包来解决这个问题。 参考答案:C 答案解析: 小部件设计时应是独立的,也就是说使用一个小部件时候,可以直接丢弃它而不需要额外的处理 4.以下关于结构型模式说法错误的是? A、结构型模式可以在不破坏类封装性的基础上,实现新的功能 B、结构型模式主要用于创建一组对象 C、结构型模式可以创建一组类的统一访问接口 D、结构型模式可以在不破坏类封装性的基础上,使得类可以同不曾估计到的系统进行交互 参考答案:B 答案解析: 结构型(structural):处理类或对象间的组合 5.是PHP魔术方法的是? A、__function B、__to C、__line D、__invoke 参考答案:D 答案解析: __construct __destruct __call __callStatic __get __set __isset __clone __unset __sleep __wakeup __toString __invoke __set_state 6.substr函数的作用是? A、查找字符串 B、替换字符串 C、截取字串 D、截取长度 参考答案:C 答案解析: 截取字符串的部分字符串。 7.以下的哪一个数据库产品是采用了 pureXML技术的数据服务器: A、SQL Server B、DB2 C、MySQL D、JSON 参考答案:B 答案解析: 暂无 8.作为一个管理员,你希望在每一个新用户的目录下放一个文件.bashrc, 那么你应该在哪个目录下放这个文件,以便于新用户创建主目录时自动将这个文件复制到自己的目录下。 A、/etc/skel/ B、/etc/default/ C、/etc/defaults/ D、/etc/profile.d/ 参考答案:A 答案解析: /etc/skel/目录是用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。 这个目录下的所有文件都是隐藏文件(以.点开头的文件)。 9.在MySQL中,可用于创建一个新数据库的SQL语句为() A、CREATE DATABASE B、CREATE TABLE C、CREATE DATABASES D、CREATE DB 参考答案:A 答案解析: A选项正确,创建库语句为:CREATE DATABASE 数据库名。 B选项CREATE TABLE,是创建表的语句。 C和D选项语法错误。 10.关于判断文件类型,以下说法正确的是? A、根据文件的扩展名可以正确判断文件的类型 B、根据文件的特征值可以正确判断文件类型 C、根据文件的大小及特征值可以正确判断文件类型 D、通过任何方法也无法100%确定文件类型 参考答案:D 答案解析: 任何方式都可以伪造,所以我们只能通过方法无限接近,而无法完全保证可以判断正确。 11.在mysql中用a,b,c三个字段建立一个复合索引a_b_c,请问以下哪个查询效率最差? A、select * from test where a=10 and b>50 B、select * from test where a=10 and b>10 order by c C、select * from test where a=10 and b=
码农编程进阶笔记
2021/07/20
5620
百度php面试题之 – 高级php工程师篇
阅读量: 163 一 算法 基本排序算法要会写,时间复杂度要会推算, 主要是冒泡排序, 快速排序, 选择排序. 查找算法,要会写二分查找法, 实际场景要会应用. 实例算法思路要明白,基本算法看多了, 我觉得是几种思路的变换, 需要自己领悟. 面试中考过: 猴子选大王 斗地主项目设计 实现随机函数 字符串中元素各种变形查找 123456 六个数放到三角形三个顶点及中点上,使每条边上的数字和相等 一个超大文件里面存放关键,统计每个关键的个数, 问如何实现 一个10G的文件,里面存放关键字, 但内存只有1
李昂君
2021/12/24
1.2K0
百度php面试题之 – 高级php工程师篇
PHP码农在Golang压力下的生存之道-PHP性能优化实践
随着国内Golang的火爆,phper的生存压力越来越大,在一次内部技术讨论中,gopher甚至提出,要什么php,写php的全部开掉,唉,码农何苦为难码农。 本文试图寻找一种有效实践,减少php web程序和golang之间的性能差距,摆脱php在公司往后只能写后台的悲惨命运。 做优化的思路 1、了解php语言特性 2、了解php的执行过程 3、压测分析性能 语言特性 PHP被称为脚本语言或解释型语言,它没有被直接编译为机器指令,而是编译为一种中间代码的形式,无法直接在CPU上执行。 所以PHP的执行需要
架构师刀哥
2018/03/20
2.4K0
php开发工程师面试题知识点总结(三)--中级篇
内部做了很多优化,从磁盘读取数据时自动在内存构建hash索引,插入数据时自动构建插入缓冲区
码农编程进阶笔记
2021/07/20
6320
13000字!最常问的MySQL面试题集合
问题1:char、varchar的区别是什么? varchar是变长而char的长度是固定的。如果你的内容是固定大小的,你会得到更好的性能。
杰哥的IT之旅
2020/11/03
9690
深入理解PHP之OpCode
OpCode是一种PHP脚本编译后的中间语言,就像Java的ByteCode,或者.NET的MSL。PHP
Java架构师必看
2021/03/22
5590
PHP 高级工程面试题汇总
勾股定理,矩形是对角线相等的四边形。只要任意三点不在一条直线上,任选一点,求这一点到另外三点的长度的平方,两个短的之和如果等于最长的,那么这就是矩形。
码农编程进阶笔记
2021/07/20
1.1K0
php面试题目100及最佳答案
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174557.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
8.8K0
2021年最新PHP 面试、笔试题汇总(一)
1.单一职责原则规定一个类有且仅有一个理由使其改变。换句话说,一个类的边界和职责应当是十分狭窄且集中的。我很喜欢的一句话"在类的职责问题上,无知是福"。一个类应当做它该做的事,并且不应当被它的任何依赖的变化所影响。
码农编程进阶笔记
2021/07/20
8300
2021年最新PHP 面试、笔试题汇总(一)
PHP经典面试题合集
结合过去几天我自己的采访,我列出了一些php面试题,并根据我自己的意见基本上回答了这些问题。 请指出错误的地方,与您讨论和分析,并希望在面试过程中能帮助到你
友儿
2022/09/11
1.4K0
PHP核心技术经典面试题
31.PHP中如何判断一个字符串是否是合法的日期模式:2007-03-13 13:13:13。要求代码不超过5行。(酷讯)
友儿
2022/09/11
3.1K0
php面试题目2020_php算法面试题及答案
1、什么事面向对象?主要特征是什么? 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。
全栈程序员站长
2022/09/27
3.3K0
DFA和NFA
正则表达式萌芽于1940年代的神经生理学研究,由著名数学家Stephen Kleene第一个正式描述。具体地说,Kleene归纳了前述的神经生理学研究,在一篇题为《正则集代数》的论文中定义了“正则集”,并在其上定义了一个代数系统,并且引入了一种记号系统来描述正则集,这种记号系统被他称为“正则表达式”。在理论数学的圈子里被研究了几十年之后,1968年,后来发明了UNIX系统的Ken Thompson第一个把正则表达式用于计算机领域,开发了qed和grep两个实用文本处理工具,取得了巨大成功。在此后十几年里,一大批一流计算机科学家和黑客对正则表达式进行了密集的研究和实践。在1980年代早期,UNIX运动的两个中心贝尔实验室和加州大学伯克利分校分别围绕grep工具对正则表达式引擎进行了研究和实现。与之同时,编译器“龙书”的作者Alfred Aho开发了Egrep工具,大大扩展和增强了正则表达式的功能。此后,他又与《C程序设计语言》的作者Brian Kernighan等三人一起发明了流行的awk文本编辑语言。到了1986年,正则表达式迎来了一次飞跃。先是C语言顶级黑客Henry Spencer以源代码形式发布了一个用C语言写成的正则表达式程序库(当时还不叫open source),从而把正则表达式的奥妙带入寻常百姓家,然后是技术怪杰Larry Wall横空出世,发布了Perl语言的第一个版本。自那以后,Perl一直是正则表达式的旗手,可以说,今天正则表达式的标准和地位是由Perl塑造的。Perl 5.x发布以后,正则表达式进入了稳定成熟期,其强大能力已经征服了几乎所有主流语言平台,成为每个专业开发者都必须掌握的基本工具。
Java架构师必看
2021/07/13
8460
PHP 笔试 + 面试题
本章主要介绍常见的 PHP 笔试 + 面试题,包括: ---- 基础及程序题 数据库技术题 综合技术题 项目及设计题 ---- 基础及程序题 [1] 写一个排序算法,可以是冒泡排序或者是快速排序,假设待排序对象是一维数组(不能使用系统已有函数)(C/C++、PHP、Java) 假设以下的排序都是从小到大排序 C++ 实现冒泡排序 #include <iostream> void bubbleSort(int arr[], int n) // n 为数组大小 { for (int i =
echobingo
2018/04/25
3.1K0
PHP 笔试 + 面试题
PHP相关概念及配置
php MIME,http,html MIME:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型 浏览器:插件,或是调用外在程序。 动态网站:根据客户端请求,服务器调用外界程序运行脚本生成文档在返回给客户端。返回不同结果。根据客户端不同请求做出不同响应。 客户端动态:服务器端开发一段程序,这段程序的源程序下载到客户端本地并且在客户端本地的运行环境中运行。并通过浏览器将执行结果显示出来。 防止恶意代码,一般不使用。Activex,apple
若与
2018/04/25
9150
PHP相关概念及配置
PHP常见面试题_php面试常问面试题
一. 基本知识点 1.1 HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。。。 200 : 请求成功,请求的数据随之返回。 301 : 永久性重定向。 302 : 暂时行重定向。 401 : 当前请求需要用户验证。 403 : 服务器拒绝执行请求,即没有权限。 404 : 请求失败,请求的数据在服务器上未发现。 500 : 服务器错误。一般服务器端程序执行错误。 503 : 服务器临时维护或过载。这个状态时临时性的。
全栈程序员站长
2022/09/27
7900
一文掌握开发利器:正则表达式
作者:mathe,腾讯QQ音乐前端开发工程师 正则表达式具有伟大技术发明的一切特点,它简单、优美、功能强大、妙用无穷。对于很多实际工作来讲,正则表达式简直是灵丹妙药,能够成百倍地提高开发效率和程序质量。 1. 正则常见规则 1.1 字符匹配 字符说明\转义符\d[0-9]。表示是一位数字。\D[^0-9]。表示除数字外的任意字符。\w[0-9a-zA-Z_]。表示数字、大小写字母和下划线。\W[^0-9a-zA-Z_]。非单词字符。\s[\t\v\n\r\f]。表示空白符,包括空格、水平制表符、 垂直
腾讯技术工程官方号
2020/09/17
1.3K0
详解:PHP加速器配置神器opcache
当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode cache的性能提升是非常有限的。但是既然opcode cache能带来CPU和内存开销的降低,这总归是好事。
用户4988085
2021/07/25
2.2K0
相关推荐
2019年腾讯PHP工程师面试题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档