-
类调用 use\venter\session\Imooc;
类重命名 use\venter\Imooc as Imooc2;
方法调用 use function venter\iLikeImooc;
常量使用const: use const venter\IMOOC;
查看全部 -
final class Dad{}前加关键字不会被子类继承
final protected function Kungfu前加final方法不会被重写
查看全部 -
子类有和父类相同方法的时候显示自己的方法。
子类没有构造方法的时候会自动继承父类的构造方法,都有的时候就调用自己的构造方法。
查看全部 -
全局空间使用\
查看全部 -
实现工厂模式:在定义多个功能类似的类,可以加一个工厂类,在这个工厂类里只返回实例化的后的类,然后切换底层的功能就只能修改工厂类了;
比如memcache和redis驱动,可以定义一个Cache类来作为工厂类来实现缓存切换;
查看全部 -
要实现单例首先要将__construct和__clone方法私有化,然后定义个获取实例的静态方法,使用instanceof来判断实例化的对象是否属于当前对象,如果属于则直接返回,不属于则new一个;
单例模式的好处可以减少内存开销;
查看全部 -
抽象类跟接口差不多,都可以定义空方法,但是接口里面定义的方法不能实现具体功能,只能定义空方法(不能写具体的代码),而抽象类可以定义空方法,也可以实现方法的具体功能(可以写具体的代码);
查看全部 -
面向对象编程其实也是面向接口编程,使用接口来设计功能会使代码松耦合,设计功能的时候尽量使用接口来设计功能。
接口是不能被实例化的;
接口之间可以继承;
查看全部 -
php的类是单继承的,但是要实现多继承可以使用trait来定义,就解决了多继承的问题;
在类中使用use关键字类导入trait;
查看全部 -
对象之间的赋值是浅拷贝(其中一个对象的值会随着另外一个对象的值改变),变量之间赋值是深拷贝(其中一个变量的值的改变不会影响另外一个变量的值);
要把对象之间的赋值变成深拷贝使用"clone"关键字;
浅拷贝比较省内存,深拷贝
比较耗内存;
查看全部 -
工厂模式:负责用来创建类的实例
查看全部 -
单例模式:确保一个类只有一个实例
查看全部 -
抽象类(abstract):区别于接口 interface 在于,里面可以包含具体的方法
查看全部 -
接口 interface:定义空的方法,然后其他类来实现方法的具体操作
接口不能被直接实例化
接口可以继承
接口可以使用常量
查看全部 -
使用 trait 定义多个方法或属性,就可以在类里面 使用 use 去调用多个 trait 定义的方法或属性,解决了类的单一继承问题
查看全部
举报