php接口实现
PHP接口实现方法
定义接口
使用interface关键字定义接口,接口中只能包含抽象方法和常量。接口方法必须是公开的,且不包含具体实现。
interface LoggerInterface {
public function log($message);
public function error($message);
}
实现接口
类通过implements关键字实现接口,必须重写接口中的所有方法。一个类可以实现多个接口。
class FileLogger implements LoggerInterface {
public function log($message) {
file_put_contents('log.txt', $message, FILE_APPEND);
}
public function error($message) {
file_put_contents('error.txt', $message, FILE_APPEND);
}
}
接口继承
接口可以通过extends继承其他接口,支持多继承。子接口会继承父接口的所有方法。
interface AdvancedLoggerInterface extends LoggerInterface {
public function warn($message);
}
类型约束
在函数参数中可以使用接口名进行类型约束,确保传入的对象实现了特定接口。
function processLog(LoggerInterface $logger) {
$logger->log("Processing log");
}
常量定义
接口中可以定义常量,实现该接口的类不能覆盖这些常量。
interface MathInterface {
const PI = 3.14159;
public function calculate();
}
多接口实现
一个类可以同时实现多个接口,用逗号分隔接口名。必须实现所有接口中的方法。
class DatabaseLogger implements LoggerInterface, DatabaseInterface {
// 实现所有接口方法
}
接口与抽象类区别
接口只定义规范不包含实现,抽象类可以包含部分实现。类可以实现多个接口但只能继承一个抽象类。







