记录最近的几次面试(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 协议》,转载必须注明作者和本文链接
本帖由系统于 1年前 自动加精
讨论数量: 11

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

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

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

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

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

8个月前 评论

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

1年前 评论

这有谁能昨晚这面试体啊

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

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

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

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

1年前 评论
canflyingpig 1年前
ziming007 10个月前
究极管理员 10个月前
shrewd_lion 10个月前
nbutluo 9个月前
qingshui 9个月前
xiadiganhuo 9个月前
nbutluo 8个月前
ifelse 8个月前
konghou 8个月前
J_Wang 8个月前
Inccleo 5个月前
yoonhi 5个月前
MArtian 2个月前

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

1年前 评论

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

10个月前 评论
面试权威指南 9个月前

我特么转头就走!

8个月前 评论

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

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

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

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

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

8个月前 评论
白小二

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

6个月前 评论
Neilyozの鱼不浪 6个月前
白小二 (作者) 6个月前
Neilyozの鱼不浪 6个月前
luffy-gu 5个月前

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

6个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!