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 implementation";
}
public function method2($param) {
echo "Method 2 implementation 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";
}
}
实际应用示例
接口常用于定义服务契约,确保不同实现类具有一致的方法。
interface Logger {
public function log($message);
}
class FileLogger implements Logger {
public function log($message) {
file_put_contents('log.txt', $message . PHP_EOL, FILE_APPEND);
}
}
class DatabaseLogger implements Logger {
public function log($message) {
// 数据库日志记录逻辑
echo "Logged to database: " . $message;
}
}
function process(Logger $logger) {
$logger->log("Processing started");
}
$fileLogger = new FileLogger();
$dbLogger = new DatabaseLogger();
process($fileLogger);
process($dbLogger);
通过接口可以实现多态,使代码更灵活和可扩展。






