php中实现接口
PHP 中实现接口的方法
在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以通过 implements 关键字来实现接口,并必须实现接口中定义的所有方法。
定义接口
接口使用 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";
}
}
接口与类型检查
接口可以用于类型检查,确保对象实现了特定的方法集。
function process(MyInterface $obj) {
$obj->method1();
$obj->method2("test");
}
$obj = new MyClass();
process($obj);
常量定义
接口中可以定义常量,实现该接口的类可以直接使用这些常量。

interface MyInterface {
const MY_CONSTANT = "value";
public function method1();
}
class MyClass implements MyInterface {
public function method1() {
echo self::MY_CONSTANT;
}
}
$obj = new MyClass();
$obj->method1(); // 输出 "value"
注意事项
- 接口中的方法必须是
public,不能是private或protected。 - 接口不能包含属性,只能包含方法和常量。
- 类实现接口时,方法签名必须完全匹配(参数数量和类型需一致)。






