类可以扩展一个类并实现一个接口

一个类可以在PHP中扩展一个接口和另一个类吗?
基本上我想这样做:

interface databaseInterface{
 public function query($q);
 public function escape($s);
 //more methods
}

class database{ //extends both mysqli and implements databaseInterface
 //etc.
}

如何做到这一点,仅仅是这样做的:

class database implements databaseInterface extends mysqli{ 

导致致命错误:

Parse error: syntax error, unexpected T_EXTENDS, expecting '{' in *file* on line *line*

反过来尝试一下:

class database extends mysqli implements databaseInterface { ...}

这应该工作。


是的,它可以。 你只需要保留正确的顺序。

class database extends mysqli implements databaseInterface { ... }

而且,一个类可以实现多个接口。 用逗号分开他们。

不过,我觉得有必要提醒你, 扩展mysqli类是非常糟糕的主意 。 在面向对象编程中,继承本身可能是最高估和滥用的概念。

相反,我建议做与数据库相关的东西mysqli的方式(或PDO方式)。

此外,还有一件小事,但命名约定很重要。 你的类database似乎比mysqli更通用,因此它表明后者从database继承,而不是周而复始。


是的,事实上,如果你想实现多个接口,你可以这样做:

public class MyClass extends BaseClass implements myInterface1, myInterface2, myInterface3{ 

}
链接地址: http://www.djcxy.com/p/69581.html

上一篇: Can a class extend both a class and implement an Interface

下一篇: Access PHP array element with a function?