php

PHP 常见试题(一)

2020-08-13  本文已影响0人  Amazing慕丶涵

一、列举一些 PHP 中的设计模式?

单例模式: 保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个,同时这个类还必须提供一个访问该类的全局访问点。

工厂模式: 定义一个创建对象的接口,但是让子类去实例化具体类。工厂方法模式让类的实例化延迟到子类中。

观察者模式: 观察者模式有时也被称作发布/订阅模式,该模式用于为对象实现发布/订阅功能:一旦主体对象状态发生改变,与之关联的观察者对象会收到通知,并进行相应操作。

适配器模式: 适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

依赖注入模式: 依赖注入(DependencyInjection)是控制反转(Inversion ofControl)的一种实现方式。要实现控制反转,通常的解决方案是将创建被调用者实例的工作交由 IoC 容器来完成,然后在调用者中注入被调用者(通过构造器/方法注入实现),这样我们就实现了调用者与被调用者的解耦,该过程被称为依赖注入。

门面模式: 门面模式(Facade)又称外观模式,用于为子系统中的一组接口提供一个一致的界面。

二、PHP7 和 PHP5 的区别,具体多了哪些新特性?

三、为什么 PHP7 比 PHP5 性能提升了?

四、简述一下 PHP 垃圾回收机制(GC)

PHP 5.3 版本之前都是采用引用计数的方式管理内存,PHP 所有的变量存在一个叫zval的变量容器中,当变量被引用的时候,引用计数会+1,变量引用计数变为0时,PHP 将在内存中销毁这个变量。

但是引用计数中的循环引用,引用计数不会消减为 0,就会导致内存泄露。

五、如何解决 PHP 内存溢出问题

六、Redis、Memecached 这两者有什么区别?

七、Redis如何实现持久化?

上一篇下一篇

猜你喜欢

热点阅读