PHP 接口

2025年4月23日 | 阅读 4 分钟

在 PHP 中,接口(interface)被用作类的模板,就像类是对象的模板一样。它类似于类,但不能包含任何实际代码或非抽象方法。它用于定义方法名称及其参数,而不提供实现。接口中指定的每个方法都必须由实现它的类提供精确的定义。

PHP 允许一个类实现多个接口,这使得接口成为实现多重继承和在不同类之间强制执行一致方法结构的强大工具。接口使用 `interface` 关键字声明,并通常用于定义实现类必须遵循的契约。

除了将“interface”一词替换为“class”之外,接口的定义方式与类相同。

语法

注意:接口中的方法不具有任何功能。这些已定义方法的定义必须由实现该接口的类提供。

在定义子类时使用“extends”关键字,但在本例中,需要使用“implements”。

基本示例

示例

输出

This function is from Interface i1.
This function is from Interface i2.

示例 2:使用 Shape 接口计算面积

让我们定义一个名为 `shape` 的接口。我们有不同几何形状的形状,例如 圆形矩形 等,每种形状都有一个 面积,通过不同的公式计算。 `shape` 接口声明了一个 `area()` 函数,该函数以浮点值返回任何形状的面积。

步骤 1:定义接口

步骤 2:在 Triangle 类中实现接口

只要实现类能够为接口的每个方法提供功能,任何数量的类都可以实现一个接口。

步骤 3:在 Rectangle 类中实现接口

步骤 4:创建对象并计算面积

示例

输出

Base: 5, Height: 10 | Area of Triangle: 25
Length: 4, Width: 6 | Area of Rectangle: 24

多重继承

PHP 中无法创建扩展两个父类的子类。例如:`class child extends parent1, parent2`

PHP 不支持此语句。但它允许您实现一个或多个接口,并有一个扩展父类的子类。让我们检查下面的示例,该示例演示了一个类如何实现一个接口并扩展另一个接口。

示例

我们将模拟一个可以连接到 互联网、播放媒体并具有基本设备 信息 的智能设备。

示例

输出

Device: Galaxy X | OS: Android 14 | RAM: 8GB
Connected to network: 4G_Network
Starting navigation to: Central Park, NYC
Calling 9876543210...