多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。我们可以通过 interface 来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的。 接口中定义的所有方法都必须是 public,这是接口的特性。 #### 实现 要实现一个接口,可以使用`implements`操作符。类中必须实现接口中定义的所有方法,否则会报一个 fatal 错误。如果要实现多个接口,可以用逗号来分隔多个接口的名称。 ~~~php <?php interface A { public function actionA(); } interface B { public function actionB(); } //实现多个接口 class C implements A, B { public function actionA() { //do something } public function actionB() { //do something } } ~~~ 注意: * 实现多个接口时,接口中的方法不能有重名。 * 接口也可以继承,通过使用`extends`操作符。 ~~~php <?php interface A { public function actionA(); } interface B extends A { public function actionB(); } class C implements A { public function actionA() { //do something } public function actionB() { //do something } } ~~~ #### 常量 接口中也可以定义常量。接口常量和类常量的使用完全相同。 它们都是定值,不能被子类或子接口修改。 ~~~php <?php interface A { const B = 'Interface constant'; } // 输出接口常量 echo A::B; // 错误写法,因为常量的值不能被修改。接口常量的概念和类常量是一样的。 class C implements A { const B = 'Class constant'; } ~~~