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

一个类可以在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{ 

导致一个致命的错误:

parsing错误:语法错误,意外的T_EXTENDS,预计在*文件中的{{*行*行*

试试看:

 class database extends mysqli implements databaseInterface { ...} 

这应该工作。

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

 class database extends mysqli implements databaseInterface { ... } 

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

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

相反,我会build议做与db相关的东西mysqli的方式(或PDO的方式)。

另外,还有一点小事,但命名约定很重要。 你的类database似乎比mysqli更普遍,因此它build议后者从databaseinheritance,而不是周围的方式。

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

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