Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >百度php工程师面试题及答案解析

百度php工程师面试题及答案解析

作者头像
php007
发布于 2020-05-22 03:10:16
发布于 2020-05-22 03:10:16
1.1K0
举报
文章被收录于专栏:PHP专享栏PHP专享栏

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

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

A、[0,1,2,3]

B、[1,3,5,7,5]

C、[1,2,3,4,5]

D、[0,1,2,3,5]

参考答案:D

答案解析:

考的是数组+和array_merge的区别 当下标为数值时,array_merge()不会覆盖掉原来的值,但array+array合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖). 当下标为字符时,array+array仍然把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉,但array_merge()此时会覆盖掉前面相同键名的值.

2.以下代码执行结果是?

A、0

B、1

C、2

D、3

参考答案:B

答案解析:

如果你回答 2 ,恭喜,你掉入陷阱了。其实这道题主要考两点,第一点是static静态类型。这种的值永远都是静态的,第一次调用声明等于0,并且自增等于1。第二次调用,1再自增就等于2。但其实这里还有一道陷阱,那就是++a与a++的区别,前++是先自增,后++是先返回值再自增,所以结果等于 1。

3.以下PHP代码执行的结果是?

A、[1,2,3]

B、[1,2,2]

C、[1,1,2]

D、[1,3,2]

参考答案:B

答案解析:

在 PHP 中,foreach 结束后,循环中的索引值(index)及內容(value)並不会被重置。所以最后的 $v还指向最后一个元素,再次循环,就会把最后个元素的值修改掉了。

解决的办法是,循环完毕之后,用unset($v); https://www.php.net/manual/en/control-structures.foreach.php

4.php执行过程的顺序正确的是?

A、扫描->解析->编译->执行->输出

B、扫描->解析->执行->编译->输出

C、扫描->编译->解析->执行->输出

D、扫描->执行->编译->解析->输出

参考答案:A

答案解析:

PHP简化执行过程:1.扫描(scanning) ,将index.php内容变成一个个语言片段(token) 2.解析(parsing) , 将一个个语言片段变成有意义的表达式 3.编译(complication),将表达式编译成中间码(opcode) 4.执行(execution),将中间码一条一条的执行 5.输出(output buffer),将要输出的内容输出到缓冲区

5.php垃圾回收机制的说法错误的是?

A、在一个垃圾周期中,通过检查引用计数是否减1,并且检查哪些变量容器的引用次数是零,来发现哪部分是垃圾

B、可以通过调用gc_enable() 和 gc_disable()函数来打开和关闭垃圾回收机制

C、通过清理未被使用的变量来节省内存的占用

D、php代码执行完毕后会自动执行垃圾回收,所以不需要手动执行垃圾回收

参考答案:D

答案解析:

php一段代码有可能要长时间执行,但若此期间有未引用的变量的话,就会占用内存的空间,导致运行缓慢等问题

6.关于XSS防御,错误的是?

A、禁止字符

B、限制字符(reg_match)

C、过滤(preg_replace)

D、转义标签(htmlspecialchars)

参考答案:A

答案解析:

转义标签(htmlspecialchars) 限制字符(reg\_match) 过滤(preg\_replace) http only 模板引擎

7.有一个文件ip.txt,每行一条ip记录,共若干行,下面哪个命令可以实现“统计出现次数最多的前3个ip及其次数”?( )

A、uniq -c ip.txt

B、sort -nr ip.txt | uniq -c | sort -nr | head -n 3

C、cat ip.txt | count -n | sort -rn | head -n 3

D、cat ip.txt | count -n

参考答案:B

答案解析:

本题利用管道符"|"组合多个命令,uniq -c filename用于去除冗余并统计每一行出现的次数。sort -r指逆序排序,-n指按数字字符串大小排序 head指定数量。剩下的二选一交给运气。

正确的命令应该为:sort -nr ip.txt | uniq -c | sort -nr | head -n 3 第一次排序,把ip按顺序排列,因为第二个uniq只会合并相邻项 第二次排序,才是把ip按出现次序大小从大到小排列 最后取前三项结果。

8.Mysql索引使用的B-Tree描述错误的是?

A、每个非叶子结点由n-1个key和n个指针组成,其中d<=n<=2d;

B、每个叶子结点至少包含一个key和两个指针

C、所有叶结点都在同一层,深度等于树高h.

D、一个结点中的key从左至右递减排列

参考答案:D

答案解析:

B-Tree是满足条件:d>=2,即B-Tree的度;h为B-Tree的高;每个非叶子结点由n-1个key和n个指针组成,其中d

9.下列哪个是创建一个每周三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分钟执行一次

10.正则的引擎表述错误的是?

A、正则引擎主要可以分为两大类:一种是DFA,一种是NFA。

B、一般而论,NFA引擎则搜索更快一些。但是DFA以表达式为主导,更容易操纵,因此一般程序员更偏爱DFA引擎!

C、NFA表达式主导,DFA文本主导.

D、可以使用是否支持忽略优先量词和分组捕获来判断引擎类型:支持 NFA,不支持 DFA

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家(11年架构师带你解读年薪50万面试通关秘籍。)

如果喜欢我的文章,想与一群资深开发者一起交流学习的话,获取更多相关大厂面试咨询和指导,欢迎加入我的学习交流群点击此处PHP高级交流

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

1.HTTP中GET与POST的区别有哪些?

A、GET在浏览器回退时是无害的,而POST会再次提交请求

B、GET请求只能进行url编码,而POST支持多种编码方式

C、GET请求会被浏览器主动cache,而POST不会,除非手动设置。

D、GET产生一个TCP数据包,POST产生两个TCP数据包。

2.MySQL有一个复合索引:INDEX(`a`, `b`, `c`),以下查询能用上索引的有?

A、select * from users where a = 1 and b = 2

B、select * from users where b = 2 and a = 1

C、select * from users where a = 2 and c = 1

D、select * from users where b = 2 and c = 1

3.为什么大型网站要使用消息队列

A、解耦

B、异步

C、削峰

D、大数据处理

4.关于Memcache与Redis的说法正确的有?

A、Memcache单个key(变量)存放的数据有2M的限制, Redis单个key(变量)存放的数据有1GB的限制

B、Memcache存储数据的类型都是String类型,Redis数据类型比较丰富:String、List、Set、Sortedset、Hash

C、Memcache可以使用多核(多线程),而Redis只是支持单线程

D、Memcache服务器突然断电,则全部数据就会丢失;而Redis有持久化功能,可以把数据随时存储在磁盘上

5关于缓存雪崩的事前事中事后的解决方案正确的有?

A、事前:进行系统压力测试,在负载均衡层做限流处理,过载丢弃请求或者进入队列

B、事前:redis 高可用,主从+哨兵,redis cluster,避免全盘崩溃。

C、事中:本地 ehcache 缓存 + hystrix 限流&降级,避免 MySQL 被打死。

D、事后:redis 持久化,一旦重启,自动从磁盘上加载数据,快速恢复缓存数据。

6.设计一个高并发系统,需要重点考虑的问题有?

A、系统拆分

B、缓存

C、MQ

D、分库分表

E、读写分离

F、ElasticSearch

7.关于PHP-FPM子进程数量说法正确的有?

A、PHP-FPM 子进程数量不能太多,太多了增加进程管理的开销以及上下文切换的开销

B、dynamic 方式下,最合适的子进程数量为 在 N + 20% 和 M / m 之间 (N 是 CPU 内核数量,M 是 PHP 能利用的内存数量,m 是每个 PHP 进程平均使用的内存数量)

C、static方式:M / (m * 1.2) (M 是 PHP 能利用的内存数量,m 是每个 PHP 进程平均使用的内存数量)

D、pm.max_requests 可以随便设置 ,但是为了预防内存泄漏的风险,还是设置一个合理的数比较好

8.关于Kafka、ActiveMQ、RabbitMQ、RocketMQ说法正确的有?

A、ActiveMQ 基于 erlang 开发,并发能力很强,性能极好,延时很低

B、RocketMQ topic 可以达到几百/几千的级别,吞吐量会有较小幅度的下降,在同等机器下,可以支撑大量的 topic

C、RabbitMQ时效性是微秒级,这是 RabbitMQ 的一大特点,延迟最低

D、Kafka 单机吞吐量 10 万级,高吞吐,一般配合大数据类的系统来进行实时数据计算、日志采集等场景

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

A、单库生成自增 id

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

C、UUID

D、snowflake 算法

10.Redis 内存淘汰机制有哪些?

A、noeviction: 当内存不足以容纳新写入数据时,新写入操作会报错

B、allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 key

C、volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的 key

D、allkeys-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个 key。

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

本文分享自 风帆 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2018年小米高级 PHP 工程师面试题(模拟考试卷)
A:set_error_handler B:error_reporting C:error2exception D:catch
码农编程进阶笔记
2021/07/20
6590
【精选】Mysql B-Tree和B+Tree的结构?
静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元)。
码农编程进阶笔记
2022/08/18
4420
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
5480
最新PHP 面试、笔试题汇总(code happy)[通俗易懂]
读在前面: 面向对象编程和面向对象设计的五个基本原则「SOLID」 单一职责原则(Single Responsibility Principle) 开放封闭原则(Open Closed Principle) 里氏替换原则(Liskov Substitution Principle) 接口隔离原则(Interface Segregation Principle) 依赖反转原则(Dependency Inversion Principle) 1.单一职责原则规定一个类有且仅有一个理由使其改变。换句话说,一个类的边界和职责应当是十分狭窄且集中的。我很喜欢的一句话”在类的职责问题上,无知是福”。一个类应当做它该做的事,并且不应当被它的任何依赖的变化所影响。 2.开放封闭原则,又称开闭原则,规定代码对扩展是开放的,对修改是封闭的。 3.里氏替换原则规定对象可以被其子类的实例所替换,并且不会影响到程序的正确性。 4.接口隔离原则规定,不应该强制接口的实现依赖于它不使用的方法。 5.依赖反转原则,它规定高层次的代码不应该依赖低层级的代码。换句话说,高层次的代码应该依赖抽象接口,抽象接口就像是「中间人」一样,负责连接着高层次和低层次代码。这个原则的另一层意思是,抽象接口不应该依赖具体实现,但具体实现应该依赖抽象接口
全栈程序员站长
2022/09/05
1.4K0
2021年最新PHP 面试、笔试题汇总(一)
1.单一职责原则规定一个类有且仅有一个理由使其改变。换句话说,一个类的边界和职责应当是十分狭窄且集中的。我很喜欢的一句话"在类的职责问题上,无知是福"。一个类应当做它该做的事,并且不应当被它的任何依赖的变化所影响。
码农编程进阶笔记
2021/07/20
7960
2021年最新PHP 面试、笔试题汇总(一)
php面试题和答案_百度php面试题及答案
大家好,又见面了,我是你们的朋友全栈君。 基础题: 1.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提
全栈程序员站长
2022/09/28
2.8K0
腾讯php面试题之 – PHP开发工程师笔试试卷
array_merge_recursive 合并两个数组,如果数组中有完全一样的数据,将它们递归合并
李昂君
2021/12/24
1.1K0
腾讯php面试题之 – PHP开发工程师笔试试卷
常见PHP面试题型汇总(附答案)
进入公司之前,你会有一两轮的面试与笔试,做我们这个行业的都是这样,所以除了口语表达能力(能吹)之外,还有一点就是实力能力的,这个也是你的面试题所要体现的。面试题的题型很多,但是都是离不开PHP基础的。一些刚出来的可能不懂试题的。告诉你一个方法,那个时候我真的用了!就是把所有题型都背下来了!方法很老套又不切合实际。但是很有用,因为常见的题型都遇到了~~可能是幸运吧! 可能学习各有各的方法!我以前就是那样子过来的!现在呢,还是要继续的学习与提升技能,活到老学到老!一旦进坑了,很难出来! 以下推荐一些面试常见的试题,希望对你有用!!
友儿
2022/09/11
2.9K0
网上的腾讯php面试题 (有答案版本)
一、PHP开发部分 1.合并两个数组有几种方式,试比较它们的异同 答:1、array_merge() 2、’+’ 3、array_merge_recursive array_merge 简单的合并数组 array_merge_recursive 合并两个数组,如果数组中有完全一样的数据,将它们递归合并 array_combine 和 ‘+’ :合并两个数组,前者的值作为新数组的键 2.请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制、八进制、十进制、十六进制数字) 答:其实主要还是is_int和 floor 这个方法
码农编程进阶笔记
2021/07/20
1.8K0
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
5890
PHP 高级工程面试题汇总
勾股定理,矩形是对角线相等的四边形。只要任意三点不在一条直线上,任选一点,求这一点到另外三点的长度的平方,两个短的之和如果等于最长的,那么这就是矩形。
码农编程进阶笔记
2021/07/20
1.1K0
php面试题目100及最佳答案
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174557.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
8.7K0
php面试题(2)
cat_id smallint unsigned not null auto_increment primary key comment'类别ID',
golangLeetcode
2022/08/02
2.6K0
php最新面试题_面试问题汇总
你好,我大概的说下我们的业务流程,我们的业务流程是:用户在网站浏览酒店信息,可以根据地区检索出该地区的酒店信息。列表展示酒店的信息由:酒店的名称,酒店图片,酒店位置,评论人数,评论分数以及最低入住价格。用户选中要入住的酒店进入酒店详情页面,查看酒店的介绍以及酒店的房型列表,用户根据他要入住的时间和离店的时间,检索出这个时间段内的所有可选房型(房间数量–当天的订单–当天未离店订单=剩余房间数量)显示给用户。用户选择好房型后就可以进行下单,要求有订单的开始时间,结束时间,房间数量,住客姓名,抵店时间,联系方式,备注信息等等。
全栈程序员站长
2022/09/28
9140
2021年最新大厂php+go面试题集(三)
14.快手一面 1.CDn工作原理 答:CDN通过广泛的网络节点分布,提供快速、稳定、安全、可编程的全球内容分发 加速服务,支持将网站、音视频、下载等内容分发至接近用户的节点,使用户可就近 取得所需内容,提高用户访问的响应速度和成功率。 https://blog.csdn.net/aliyunbaike/article/details/84952966 2.go的init用过吗,主要使用场景是哪些? 答:每一个源文件都可以包含一个 init 函数,该函数会在 mai
码农编程进阶笔记
2021/09/29
6160
百度php面试题之 – 高级php工程师篇
阅读量: 163 一 算法 基本排序算法要会写,时间复杂度要会推算, 主要是冒泡排序, 快速排序, 选择排序. 查找算法,要会写二分查找法, 实际场景要会应用. 实例算法思路要明白,基本算法看多了, 我觉得是几种思路的变换, 需要自己领悟. 面试中考过: 猴子选大王 斗地主项目设计 实现随机函数 字符串中元素各种变形查找 123456 六个数放到三角形三个顶点及中点上,使每条边上的数字和相等 一个超大文件里面存放关键,统计每个关键的个数, 问如何实现 一个10G的文件,里面存放关键字, 但内存只有1
李昂君
2021/12/24
1.2K0
百度php面试题之 – 高级php工程师篇
面试题(二)
function maopao($arr) { $len = count($arr); $n = count($arr) - 1; for ($i = 0; $i < $len; $i++) { for ($j = 0; $j < $n; $j++) { if ($arr[$j] > $arr[$j + 1]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j + 1];
友儿
2022/09/09
2220
PHP经典面试题合集
结合过去几天我自己的采访,我列出了一些php面试题,并根据我自己的意见基本上回答了这些问题。 请指出错误的地方,与您讨论和分析,并希望在面试过程中能帮助到你
友儿
2022/09/11
1.4K0
2018年总结的PHP面试真题简答题(附答案)
一、PHP常考基础 1、PHP与ASP、JSP有什么区别? ASP全名Active Server Pages,是一个基于Windows平台的Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序,它只能在微软平台上使用,移植性不好。ASP采用脚本语言VB Script、JScript(JavaScript)作为自己的开发语言。国内早期大部分网站都用它来开发。但因微软全面转向,ASP.NET放弃了ASP的Web开发模式,所以现在已经被淘汰使用。
友儿
2022/09/11
2K0
名企linux系统工程师面试题总结
Linux 文件系统使用索引节点来记录文件信息,作用于 Windows 的文件分配表类 似,索引节点是一个数据结构,它包含了一个文件的文件名,位置,大小,建立或修改 时间,访问权限,所属关系等文件控制信息,一个文件系统维护了一个索引节点的数组, 每个文件或目录都与索引结点数组中的唯一一个元素对应,系统为每个索引结点分配了 一个号码,也就是该结点在数组中的索引号,称为索引结点号。
胡齐
2019/10/15
1.9K0
相关推荐
2018年小米高级 PHP 工程师面试题(模拟考试卷)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档