记录最近的几次面试(PHP)

记录一下最近碰到的比较盲点的面试题。公司都不算大,所以只挑出一些技术性比较强的问题做记录。

PHP 基础相关:#
  • PHP 编译的过程?对 opcode 有没有了解?从 opcode 的角度出发,能否优化一下 php 的速度?
  • PHP 变量底层是如何实现的?
  • Nginx 与 php-fpm 的通信过程?Nginx 监听端口和 socket 方式,有何区别? php-fpm 是怎么调用 PHP 代码的?
  • PHP 是如何连接 MySQL 的?连接池是如何实现的?
  • 谈下 PHP 和 Golang 的区别
  • Swoole 和 Go 中的协程有何区别?
  • Go 中 goruntine 的底层实现?go 中的协程是怎么通信的?

函数相关
array_key_exists () 和 in_array () 哪个性能较好?

编码相关:#
  • 说一下你写的项目中的代码架构?(mvc、transformer、中间件等)
  • laravel 中常用设计模式(除了依赖注入和控制反转,还问到了策略模式和装饰者模式)
  • composer 自动加载机制(psr-4)
数据库(MySQL)#

老生常谈的有:常见的优化手段、为什么使用 B+ 树存储、索引类型、隔离级别等。

  • 现在有联合索引 a,b,c, 使用 select * from table where c=1 and a=2 其中 a 和 c 分别都可以走索引吗?为什么

  • 只使用 MySQL 在高并发下的问题

  • MySQL 中使用递归

    一道笔试题,感觉比较偏,当做补充知识了解即可

  • MySQL 执行慢怎么处理?explain 中 extra 字段中一般都会出现什么信息?如果在 explain 中看到 sql 已经走了索引,但是执行还是慢,会是什么原因?

    using filesort、mmr、using index condition、using index、using where

    走了索引还是慢的原因大概有以下几种:

    • 当前 SQL 语句执行时 MySQL 正好在刷脏页
    • 二级索引树上没有要查询的字段,需要回表(需要注意的是,MySQL 的优化器在需要回表,且回表扫描行数过大的时候,会停止使用索引,直接走主键索引,这时 extra 字段中不会出现走索引)可以用联合索引解决
    • 数据表数据量过大,需要分库分表等物理优化
  • MySQL 中排它锁的加锁时机?能否手动加排它锁?
  • myisam 引擎和 innodb 存储数据方式有何不同?myisam 这种存储方式又有何优点?
  • MySQL 主从出现延迟要如何解决?
Redis 和 NoSQL#
  • Redis 和 MongoDB 的区别
  • Redis 缓存雪崩、击穿、穿透的概念和解决方法
  • Redis 哨兵之间如何通信?
  • Redis 的连接数用完了怎么办?
  • 一致性哈希和哈希槽的区别?
  • 延时队列(这个是通过一个解决方案来问的,问题是延时发送短信或邮件如何实现)
  • 如何保证一个接口一个用户请求在一秒内只能请求一次?

    用到了 redis 中的锁

操作系统#
  • 线程和协程的区别
网络#
  • session 共享
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
讨论数量: 11

看到这个面试题好慌,也暴露了咱们 PHP 程序员的底层基础薄弱问题。
我觉得还可以问问计算机底层物理电路如何模拟逻辑判断的考题,把这些电路图给画出来哈哈哈

不开玩笑了,不得不说现在 PHP 面试真的是诸神黄昏,动不动底层原理啥的,
作为程序员是应该了解,这个无可厚非,但是真实情况是什么呢?

给你们说个真事,2019 年我也遇到了这样的面试,
而且还不止一个,当不止一个是这样时,我就已经开始放飞自我了。

后面面试官问我有啥问题问他的时候,我就把他问我不懂的问题都反问了他,
尴尬的事情来了,面试官也支支吾吾的答不上来,此时我心里才跟吃了屎一样,
感情在我这儿装逼呢?

我理解公司立场要能干活儿的人,但是差不多就得了,
要不然你咋不面试高数这些基础学科呢?都学过嘛应该会的。

4年前 评论

array_key_exists () 和 in_array (),额,这个确定没搞错吗?一个是判断 key 的,一个是判断 value 的,功能都不一样,能比吗 :joy:

4年前 评论

这有谁能昨晚这面试体啊

4年前 评论
如梦又似幻 (楼主) 4年前

这些问题都很经典,感谢分享。

4年前 评论
如梦又似幻 (楼主) 4年前

我待会把所有问题百度下来

4年前 评论
canflyingpig 4年前
ziming007 4年前
test3221 4年前
shrewd_lion 4年前
nbutluo 4年前
qingshui 4年前
xiadiganhuo 4年前
nbutluo 4年前
ifelse 4年前
巴啦啦臭魔仙 4年前
J_Wang 4年前
Lion- 3年前
yoonhi 3年前
MArtian 3年前

array_key_exists () 和 in_array (),额,这个确定没搞错吗?一个是判断 key 的,一个是判断 value 的,功能都不一样,能比吗 :joy:

4年前 评论

话说为什么 php 基础相关会有 go 的内容

4年前 评论
面试权威指南 4年前

我特么转头就走!

4年前 评论

看到这个面试题好慌,也暴露了咱们 PHP 程序员的底层基础薄弱问题。
我觉得还可以问问计算机底层物理电路如何模拟逻辑判断的考题,把这些电路图给画出来哈哈哈

不开玩笑了,不得不说现在 PHP 面试真的是诸神黄昏,动不动底层原理啥的,
作为程序员是应该了解,这个无可厚非,但是真实情况是什么呢?

给你们说个真事,2019 年我也遇到了这样的面试,
而且还不止一个,当不止一个是这样时,我就已经开始放飞自我了。

后面面试官问我有啥问题问他的时候,我就把他问我不懂的问题都反问了他,
尴尬的事情来了,面试官也支支吾吾的答不上来,此时我心里才跟吃了屎一样,
感情在我这儿装逼呢?

我理解公司立场要能干活儿的人,但是差不多就得了,
要不然你咋不面试高数这些基础学科呢?都学过嘛应该会的。

4年前 评论
白小二

@Neilyoz の鱼不浪 数学嘛,很重要啊,学计算机的不能说不会啊,所以,请面试官给我口述莱布尼茨公式的 php 实现算法

3年前 评论
Neilyozの鱼不浪 3年前
白小二 (作者) 3年前
Neilyozの鱼不浪 3年前
luffy-gu 3年前

面试题要是这样的话我很难找到工作

3年前 评论