Pim*_*ger 91 php php-parse-error
类可以扩展PHP中的接口和另一个类吗?
基本上我想这样做:
interface databaseInterface{
public function query($q);
public function escape($s);
//more methods
}
class database{ //extends both mysqli and implements databaseInterface
//etc.
}
Run Code Online (Sandbox Code Playgroud)
如何做到这一点,只需做:
class database implements databaseInterface extends mysqli{
Run Code Online (Sandbox Code Playgroud)
导致致命错误:
Parse error: syntax error, unexpected T_EXTENDS, expecting '{' in *file* on line *line*
Sim*_*ann 160
反过来试试:
class database extends mysqli implements databaseInterface { ...}
Run Code Online (Sandbox Code Playgroud)
这应该工作.
Mic*_*cki 17
是的,它可以.您只需要保留正确的订单.
class database extends mysqli implements databaseInterface { ... }
Run Code Online (Sandbox Code Playgroud)
而且,一个类可以实现多个接口.用逗号分隔'em.
但是,我觉得有必要警告你,扩展mysqli课程是一个非常糟糕的主意.继承本身可能是面向对象编程中最被高估和误用的概念.
相反,我建议使用mysqli方式(或PDO方式)执行db相关的东西.
另外,这是一个小问题,但命名惯例很重要.你的课程database看起来更加通用mysqli,因此它表明后者继承database而不是循环.
是的,事实上,如果你想实现多个接口,你可以这样做:
public class MyClass extends BaseClass implements myInterface1, myInterface2, myInterface3{
}
Run Code Online (Sandbox Code Playgroud)