php的interface定义一个接口,它的定义:一种成员属性为抽象的特殊抽象类。在程序中同为规范的的作用。
特点:Interface定义的接口的特点是:1.一个接口可以被多次调用,不同于类的单继承。
2.当子类调用接口时,必须实现接口中全部的方法。就是接口定义几个方法,下面的子类必须给每个方法加上方法体。
3.接口类和抽象类的区别
抽象类 :1.类中至少有一个抽象方法
2.前面加abstract
接口: 1.成员属性为常量const
2.前面不用加abstract
3.类中全部为抽象方法,接口抽象方法为public
4.接口类和抽象类 共同点:
1.本身不能被实例化,必须继承或者引用
2.继承和引用后,抽象方法必须重载才能实例化
关键字 interface.引用关键字 implements
5.接口的继承关键字为implements 。类的继承关键字为extends。
二、stdClass
1、资料上都说它相当于Php的一个基类,同时他也是一个空白的类。所有的类都可以继承它
可以在使用时实例化它 $a = new stdClass();
$a->id = 11;
$a->name='tom';
print_r($a);
结果为:stdClass Object([id]=>11,[name]=>tom)。这种方法可以替代数组的使用,不过相当于实例化之后的数组。
在laravel中,用查询构造器查询的数组都是这种格式的,根据需求来确定到底用哪个
2、如果在使用时用new实例化stdClass类,则会清空前面的数组,只保留实例化之后的数组。
如果没有实例化的话,stdClass会保留所有的元素。
三、php中final关键词的使用
1.final用于类前或者方法前。表示最终类
用于类前表示该类不能被继承。
用于方法前代表该方法不能被重写覆盖。也许包含该方法的类可以被继承,但这个方法是不能被重写的,不然会报错
如果你不想自己写的类或方法被别人继承的话,就可以用final关键字