PHP 接口 | PHP OOP 接口
已发表: 2021-03-03目录
介绍
PHP 是一种面向对象的语言,接口是面向对象编程语言的主要特征之一。 该接口使编码人员能够在实现该接口的类中声明包含不同定义的函数。 继续阅读以了解PHP 中的接口。 另外,通过文章中分享的PHP 中的接口示例来获得更多的理解。
PHP中的接口
接口是面向对象编程中的一个特性,它允许在没有实现的情况下创建函数。 实现需要包含在类中。 它有助于防止方法定义的复杂性,因为每个继承接口的类都可以根据需要具有不同的实现。 PHP中接口的用法与类类似,唯一的区别是接口中的函数没有实现,接口没有变量。
PHP中接口的特点
- 该接口不包含代码。
- 接口具有带或不带参数的方法声明,但没有定义。
- 实现接口的类应该包含接口中声明的所有方法的定义。
- 一个类可以有多个接口的实现。
- 接口不能有非抽象方法。
接口的语法
接口需要在使用前声明。 接口的语法类似于类的语法,唯一的区别是在声明接口时使用 interface 关键字代替 class 关键字。 下面是在 PHP 中声明接口的语法:
<?php
//在PHP中声明接口
接口 <接口名称>

{
//代码
}
?>
接口内部声明的方法可以通过类继承接口来访问。 该类在声明类时使用implements 关键字继承PHP 中的接口。
下面是在 PHP中实现接口的语法:
<?php
//类声明
类 <Class Name> 实现 <Interface Name>
{
//代码
}
?>
PHP中的接口示例
要了解接口的用法,让我们看一下下面的示例:
<?php
//声明接口
接口示例_Shape
{
公共函数 ShapeArea();
}
//类继承接口
类 Shape1 实现 Example_Shape
{
公共函数 ShapeArea()
{
Echo '圆的面积';
}
}
//类继承接口
类 Shape2 实现 Example_Shape
{
公共函数 ShapeArea()
{
Echo '广场面积';
}
}
// 类不使用接口
类 Shape3
{
公共函数 AreaCal()

{
Echo '无接口';
}
}
$Obj1 = 新形状 1; // 类 1 的对象
$Obj2 = 新 Shape2; // 类 2 的对象
$obj3 = 新 Shape3; // 类 3 的对象,不使用接口
回声 $obj1->ShapeArea();
回声'<br>';
回声 $obj2->ShapeArea();
回声'<br>';
回声 $obj3->AreaCal();
?>
输出
圆的面积
正方形面积
无接口
输出说明
Shape1 类具有在接口内声明的函数的定义。 Shape1 实现了接口,因此,它可以访问其中的函数并打印“圆的面积”。 类似的是对 Shape2 类和输出“正方形面积”的解释。 Shape3 类没有实现接口,它作为 PHP 中的普通类工作。
多接口的实现
一个类也可以实现多个接口。 在这种情况下,该类需要定义在该类正在实现的所有接口中声明的所有方法。 下面是在 PHP中实现多个接口的说明。
<?php
// 接口声明
接口示例1
{
公共函数方法 1();
}
// 另一个接口的声明
接口示例2
{
公共函数方法 2();
}
//实现上面声明的两个接口的类
类 class1 实现了 example1、example2
{
// interface1的方法定义
公共函数方法1
{
echo 'Inside interface1 method1';
}
//interface2的方法定义
公共函数方法2
{
echo '在interface2方法2内;
}
}
obj1 = 新类 1;
obj2 = 新类 2;
obj1->方法1;
obj2->方法2;
?>
输出
内部接口1方法1

内部接口2方法2
多接口实现注意几点
- 接口中声明的所有方法都应该是公共的。
- 该函数不能有关键字abstract。
- 如果程序员忘记定义任何接口函数,代码将抛出错误。
- 接口不能包含变量。
结帐: PHP 中的 OOP 概念
接口和抽象类的区别
以下是接口和抽象类之间的一些区别:
- 接口只包含声明,而抽象类包含方法声明及其定义。
- 接口中的方法只能是公共的,而抽象类中的方法可以声明为公共的、私有的或受保护的。
- 一个类可以实现多个接口,而一个类只能扩展一个抽象方法。
结论
PHP中的接口是一种功能,它使用户能够在没有定义的情况下声明公共方法。 本文通过其语法和示例解释了有关接口的所有信息。 我们希望本文中分享的信息有助于您理解这个概念。 您可以在 upGrad 博客上学习基于 PHP 的类似主题。 为了深入了解,您可以在 upGrad 注册 PHP 在线认证课程。 upGrad提供许多证书课程,可以帮助您的职业和学习。
如果您有兴趣了解有关全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发 PG 文凭,该文凭专为在职专业人士设计,提供 500 多个小时的严格培训、9 个以上的项目,以及任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。