PHP面试题(PHP篇):https://www.php.cn/toutiao-415599.html
1、PHP的命名空间怎么理解的?(解决两个问题:为很长的标识符名称创建一个别名(或简短)的名称,提高源代码的可读性。类/函数/常量或第三方类/函数/常量之间的名字冲突。)
2、PHP控制反转与依赖注入的理解?(控制反转一种设计原则,可以用来减低计算机代码之间的耦合度。依赖注入不是我自身的,却是我需要的,都是我所依赖的。一切需要外部提供的,都是需要进行依赖注入的)
3、如何设计一个高并发的系统?(https://blog.csdn.net/zxl646801924/article/details/87008914)
4、什么是匿名类、匿名函数?(也叫闭包函数 允许指定一个没有名称的函数)
5、11个魔术方法?
__construct(),类的构造函数
__destruct(),类的析构函数
__call(),在对象中调用一个不可访问方法时调用
__callStatic(),用静态方式中调用一个不可访问方法时调用
__get(),获得一个类的成员变量时调用
__set(),设置一个类的成员变量时调用
__isset(),当对不可访问属性调用isset()或empty()时调用
__unset(),当对不可访问属性调用unset()时被调用。
__sleep(),执行serialize()时,先会调用这个函数
__wakeup(),执行unserialize()时,先会调用这个函数
__toString(),类被当成字符串时的回应方法
__invoke(),调用函数的方式调用一个对象时的回应方法
__set_state(),调用var_export()导出类时,此静态方法会被调用。
__clone(),当对象复制完成时调用
__autoload(),尝试加载未定义的类
__debugInfo(),打印所需调试信息
6、php 抽象类和抽象方法?(没有方法体的方法就是抽象方法;抽象方法就是为了方便继承而引入的;关键字“abstract”)
7、面向对象编程三大特性?(封装性:好比盒子,取出即用;继承性:提高代码重用性;多态性:一个类可以创建多个对象,获取不同的结果;)
8、如何减少Laravel中的内存使用?(一对一,对多,多对多,关联hasMany,多态关系)
9、Laravel中ORM代表什么?(对象关系映射)
10、Laravel中使用的模板引擎的关键词是?(Blade;可以修改)
11、Laravel支持哪些数据库?(PostgreSQL;SQL Server;SQLite;MYSQL)
12、Laravel中dd()的函数用途是什么?
13、Laravel中的基础概念?(路由,ORM,中间件,安全,缓存,Blade模板)
14、Laravel中的bootstrap目录的用途是什么?(初始化项目,引导框架app.php文件)
15、PHP支持多继承吗?(不支持)
16、PHP 安全性攻击有哪些?(SQL注入、XSS攻击(跨站点脚本攻击JavaScript)、CSRF:跨站点请求伪造(生成一次性token)、代码注入(上传文件))
17、请简述PHP在Apache下的几种运行方式并加以比较?(CGI模式、FastCGI模式、Apache 模块DLL)
18、PHP的垃圾收集机制是怎样的?(自动进行内存管理,清除不再需要的对象,引用计数器)
19、你知道哪些设计模式,你平常有使用到吗?可以结合你的业务场景说下吗?(门面,组合,装饰,观察者)
20、假设现在有多个入口可以同时使用一个账户操作,这个账户只有十块钱,有哪些方法可以使得不超扣消费?(悲观锁 for update。redis:lua 脚本。php 层面可以利用文件锁,还可以使用队列的特性,只有一个消费的出口)
21、协程与线程的区别?swoole?(协程调度器模式。swoole 的协程调度器是单线程,go 的协程调度器是多线程)
22、说说你们这个项目最难的点是哪个地方,你是咋么解决的?