php实现接口
PHP 实现接口的方法
在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。
定义接口
接口使用 interface 关键字定义,方法不需要具体实现。
interface MyInterface {
public function method1();
public function method2($param);
}
实现接口
类使用 implements 关键字实现接口,必须实现接口中的所有方法。
class MyClass implements MyInterface {
public function method1() {
echo "Method 1 implemented";
}
public function method2($param) {
echo "Method 2 with param: " . $param;
}
}
多接口实现
一个类可以实现多个接口,用逗号分隔。
interface InterfaceA {
public function methodA();
}
interface InterfaceB {
public function methodB();
}
class MyClass implements InterfaceA, InterfaceB {
public function methodA() {
echo "Method A";
}
public function methodB() {
echo "Method B";
}
}
接口继承
接口可以通过 extends 关键字继承其他接口。
interface ParentInterface {
public function parentMethod();
}
interface ChildInterface extends ParentInterface {
public function childMethod();
}
class MyClass implements ChildInterface {
public function parentMethod() {
echo "Parent method";
}
public function childMethod() {
echo "Child method";
}
}
类型检查
可以使用 instanceof 检查对象是否实现了某个接口。
$obj = new MyClass();
if ($obj instanceof MyInterface) {
echo "Object implements MyInterface";
}
实际应用示例
接口常用于定义服务契约或插件架构。
interface Logger {
public function log($message);
}
class FileLogger implements Logger {
public function log($message) {
file_put_contents('log.txt', $message, FILE_APPEND);
}
}
class DatabaseLogger implements Logger {
public function log($message) {
// 数据库日志记录逻辑
}
}
function process(Logger $logger) {
$logger->log("Processing started");
}
$fileLogger = new FileLogger();
process($fileLogger);
通过接口可以实现多态和松耦合的设计,使代码更灵活和可维护。







