php 实现多个接口
在PHP中实现多个接口可以通过implements关键字完成,一个类可以同时实现多个接口,只需用逗号分隔接口名称。以下是具体实现方法和示例:
定义多个接口
接口通过interface关键字定义,每个接口声明一组需要实现的方法。
interface Logger {
public function log($message);
}
interface Notifier {
public function sendNotification($recipient, $message);
}
类实现多个接口
在类定义时,通过implements列出所有需要实现的接口,并定义接口中声明的所有方法。
class Application implements Logger, Notifier {
public function log($message) {
echo "Log: " . $message . "\n";
}
public function sendNotification($recipient, $message) {
echo "Notification to {$recipient}: {$message}\n";
}
}
使用实现了接口的类
实例化类后,可以调用接口中定义的方法。
$app = new Application();
$app->log("System started");
$app->sendNotification("user@example.com", "Welcome!");
类型检查与多态
通过类型检查(instanceof)可以验证对象是否实现了特定接口,接口支持多态特性。
if ($app instanceof Logger) {
$app->log("Checked Logger interface");
}
接口继承
PHP支持接口继承(extends),一个接口可以扩展多个其他接口。

interface AdvancedLogger extends Logger {
public function logWithTimestamp($message);
}
注意事项
- 实现多个接口时,必须定义所有接口中的方法,否则会触发致命错误。
- 方法名和参数签名必须与接口严格一致(包括参数类型和返回值类型,PHP 7.1+支持返回值类型声明)。
- 接口可以定义常量,但类无法覆盖这些常量的值。






